I would personally go for the former, since its just easier and there is more than a handful existing projects, including things i've made myself, which uses this method to do basic url rewriting, both inbound (incoming requests) and outbound (rewriting links in the generated html).
While the latter is more technical correct, there has been no projects AFAIK which have tried to implement a custom PageUrlProvider, so so far the possibility is only theoretical and unless you're prepared to spend lot of time on it and risk not being able to succeed without making changes to the C1 Core itself, i would go with the safe choice.
While the latter is more technical correct, there has been no projects AFAIK which have tried to implement a custom PageUrlProvider, so so far the possibility is only theoretical and unless you're prepared to spend lot of time on it and risk not being able to succeed without making changes to the C1 Core itself, i would go with the safe choice.