This limit is mainly due to OpenSprinkler 2.x has limited amount of EEPROM, and storing that many zones takes a significant amount of EEPROM space. Technically OpenSprinkler 3.0 and OSPi has no such limitation, so in theory they can be extended to handle a much larger number of zones. For compatibility reasons (particularly if someone is transitioning from one controller to another and wants to copy the configuration files), we limit them to the same number of zones. Also, 56 zones is sufficient for most applications.
The 56 zones limit applies to both physical zones and virtual zones — each virtual zone (like remote zone) still occupies one slot on the master controller, and storing its settings and including it in programs takes the same amount of EEPROM or flash memory space.