Когда есть необходимость организовать вложенную логику (причем многоуровневую, например 5-7 вложенных IF), именно в этот момент должна придти в голову мысль о применение state machine, и оно позволяет это сделать без применения многоуровневой вложенности. Просто и красиво.