Very true. I had forgotten about bencode, I should read up on that again.
It makes sense they need a canonical form because they want same values to have same content hashes.