Why does WordPress rely on an fully qualified site_url with a 15-step plan for moving a site?

This question has been discussed several times on the WordPress Hackers email list, I’d recommend Googling something like wp-hackers absolute relative to get an overview of the various lively debates that have taken place over the years.

Personally I use the searchreplacedb2 script whenever I migrate a database between URLs, e.g. from live to local/test/dev.