The desktop site was created first, and the mobile site was added much later. Often, the two sites aren't even on the same server(s) because the mobile site was contracted out to a different agency that uses an incompatible technology. My most recent freelance gig was to unify two websites run by the same organization. One was written in PHP 4.4 and the other was written in ASP.NET.
The only thing they share is the database, and even that might be handled by an export+import batch job (.vbs anyone?) rather than actually sharing the same database, because none of the ORMs are compatible with one another.
So what happens is that whoever maintains the desktop website has no idea how the mobile website works, and vice versa. If you pay them another grand or two, they might be able to figure out which URLs in one website correspond to which URLs in the other website, but the client probably cut that from the spec. Hence http://xkcd.com/869/
What I don't get is how hard it would be for someone to say "Hmm, maybe redirecting to the home page is actually a pretty awful idea. If that's the best we can do, maybe we should only auto-redirect pages where we actually know the equivalent (static pages and such) until we can afford a better solution."
As a side note, I've just realized it's things like this that are why I can't stand front-ends that are built on or tightly integrated with the same ORM the backend uses.