Kinitos comes very close to what I have been thinking of implementing for quite some time now. Kinitos requires an application to be divided into logical units called Capabilities. Capabilities are mobile code that can suspend their execution on one machine and resume at another. Kinitos' Capabilities are the equivalent of EtherYatri.NET's mobile-agents.
Implementing a smart-client infrastructure could benefit from peer-to-peer computing. I had implemented a Web-Services based Song-Sharing-Service on Microsoft.NET when I was back at college.