Speaking from personal experience, tftp is a terrible protocol so I'm here for it. A lot of tftp's terribleness is due to the simplicity of the protocol in general and it can be forgiven for that since it makes implementing a tftp server/client on marginal hardware really easy. Pre-boot environments are powerful enough now that I think we can use something a bit better.