The explanation is quite simple: Silverlight.
Silverlight implements an URI-based system for obvious reasons: the framework has been designed to be executed inside of a web browser, and therefore it makes deep-linking easier to implement (that is: opening a specific page of the Silverlight application depending on the requested URI in the web browser).
Windows Phone's runtime is based on Silverlight, so the same system simply remained. Note that it isn't a bad thing. Sure, if you stop at the navigation service, it looks like we're losing type-safety for no benefit. But if you consider that your application can be launched from a secondary tile, or since WP8 from a custom URI scheme, it suddenly all makes sense.