To be fair, ID3v2 is a ridiculously complex and over-engineered "standard". It reeks of second-system syndrome, despite not being created by the same person who created the original ID3 format. What was needed was a basic key-value store. What was delivered was a custom container format with an over-complex frame system, a bunch of redundant frame types, an unsync scheme, etc.
iTunes is hardly the only software with issues related to ID3v2 reading/writing.
iTunes is hardly the only software with issues related to ID3v2 reading/writing.