Im almost finishing something that can do this, and my hope is that it can be a "browser dissident".
The storage can be shared through bittorrent with applications and data(files and key-value database) already layed out on top of a userspace filesystem layer (the key-value goes through a sqlite btree).
All the data blocks can be shared thought bit-torrent, and everything, including the ui apps and the service application are also shared the same way.
When the dev application is launched, there's a middle-man that works like a server instance (the developers have total control into what is handled via RPC and the RPC api layout), and will launch rpc services, where the embedded application will consume by opening a url served/routed through the central host process (that centrally manages applications, processes, ipc, rpc, data, etc)
I've made this starting from a Chrome codebase, so its multi-process, with a web engine embedded (that will only be used by the ui application) but that you can control much better through your application api, aka the UI process.
The first language that have access to this is swift.. so the devs will deploy in their shared storages code/binaries for the rpc handlers (the app instance or service process) and the ui applications that happen to have full access through an api to the web layer/renderer.
It was hard to get where i am right now, but im almost finished, and even now, it looks pretty cool already.
I think that with a little more work, it can even serve to create not just p2p applications, but also distributed with pools of servers working through RPC with a help from the p2p layer.