From at least one core developer they are there for three reasons: 1. you “need” a unique identifier to search on when migrating a wordpress install to a new domain or to a subdomain, so the full domain name is the best identifier to search on (I don’t think he realized the power of url rewrites in combination with root relative urls.) 2. Absolute urls are context independent, so if your content is printed in a book it will still make sense, whereas root relative urls are not relative to the book (even though on export programmatically adding the domain to root relative urls is part of the internet spec.) And 3 – there was some sort of reasoning that content should only ever exist in one location, so absolute urls do not cause problems. He further clarified that you should never under any circumstance put production content into a staging database, so if you put content in a staging database and you expect it to work in production you are doing it wrong. Again, he probably never worked in a continuous integration shop where content has to go to a staging / blessing server first, and then migrate without human intervention to production after QA approval.
The rest of the excuses were either a lack of knowledge regarding best practices, technical feasibility, or insanely unrealistic expectations, like in the event you need to host content on two different sides of a DMZ for a government contract, you should tell the 4 star general he’s an idiot for using a DMZ because it’s likely configured incorrectly anyway… which was apparently a true story experience of Otto the Tech Ninja.
In the end there are no valid reasons for using absolute urls for local content and yet there *are* reasons that 97 of the top 100 alexa sites use root relative urls, including www.remarpro.com and wordpress.com. Two of the sites that don’t are wordpress installs, and the final one was a russian server that looked like it hosted content produced in the late 90’s.
Don’t feel bad that you don’t understand it either. The one truth I could extract from a core dev is that changing the infrastructure at this point with 65+ million installations would be a risky change that they are not going to prioritize over other features. I far more realistic explanation than “it doesn’t work” or “you’re doing it wrong.”