The current raw transaction format is not error-robust. Its trivial to corrupt transactions accidentally (e.g. accidentally dropping characters or adding characters when copy/pasting).
There are some use-case patterns where this could be quite dangerous. I prepare a txn for you to pay me some coins you control... I give it to you.. You decode and from your perspective it looks fine, but a character got dropped. You sign and transmit. Coins gone forever.
The hex strings are already inconveniently enormous. Sticking a CRC or a 64bits of a truncated hash on the end wouldn't be much additional burden (and if we cared about size at all we could make them much easier to handle if they used base64 instead like our signatures).
This would be a minor burden on application code, but its easily solved with a library and would close off a lot of mistakes and mischief.