You get the irony of complaining about how every competing design has had to "reinvent several wheels", right? The system you're advocating reinvented ASCII.
There's a difference between reinventing ten wheels ten different ways for ten apps, and reinventing one really big wheel. It has to be self-contained enough that other apps can use it without having to roll their own anything, so all of them has the same API.
One of the problems with "just use a different P2P VM" is that it probably wouldn't solve the problem of having a server your mother could use. You'd probably still have to install and setup Apache and MySQL and ElasticSearch and whatever, even if someone implements the perfect transport protocol and platform. For Urbit you just run it, which can be hidden behind a pretty "click to start" button that pings our to AWS. Hence, one big wheel.
If you do see an Urbit-like project that has the same goals, I would be ecstatic to hear about it though. I've basically had "urbit but different" on my TODO list since I first saw about it.
Getting back to your question, Blockstack is claiming to provide virtually the same personal cloud features as Urbit but it's only boiling half the ocean.
The point of Urbit is to be a cobherent, self-contained platform. Every other decentralized app I've seen had to reinvent several wheels and can't interact with each other because of it.
Urbit has a typed versioned filesystem exposed as a global namespace, typed RPC with a diff/patch system, an identitt system, forces apps (and the e tire platform) to be purely functional for easy saving and crash tolerance, and other fun things. It's like shitty OSX - it has a /vision/, even if some parts don't make sense.