It is neither crazy nor impractical; it uses little additional
bandwidth, or processing speed, doesn't rely on the TCP transport,
works through proxy gateways, doesn't require the client to fork a
separate process to listen for asynchronous UDP packets.
Certainly, for static data that is precomputed, you WOULDN'T want to
use inline escape codes, since you can merely tell the client how big
it is in the first place. This would only be appropriate for those
HTTP requests that were actually computing something where the size of
result and time of completion weren't known in advance.
I admit that there is a perspective from which this is unaesthetic,
but I suggest you squint at it a little harder.