IMO, the problem those had is that they're too simple. XMODEM in particular was basically "send part number, then 128-byte blob". Not to mention the CP/M-ism of <EOT>. It has no room for extensibility, and its usage is very restrictive, so everyone shoves their ideas into it. Including replacing <EOT> with something else.