Web Services for Remote Portlets is a service that allows for federation of portlets from different portals. This is again a fairly interesting aggregation point used mostly by either very large corporation or as a way to migrate from a portal vendor to another.
A WSRP portlet can be produced by a portal (not necessarily a Java Portal) and consumed by another portal. Most Java EE portals embed a WSRP producer and consumer but Microsoft Sharepoint does to for instance. It is then possible to produce a fragment of a page in a Java EE Portal and render it in Sharepoint (or the other way around).
WSRP has not (yet ?) achieved its goal to be used as a way to share and consume applications with external vendors. One use-case would have been to be able to sell content without going down to web-services or REST API level but directly delivering the HTML, a bit like widgets are doing today.
That said WSRP users found their interest in multiple scenarios, the first use-case is seen in companies with tight legal issues (or security issues) where some data for one or more applications must be physically located in some place and other in another place. Say an international company stores its customers data in their own countries and each country IT service publish data the way they want to the other countries.
Another scenario is about migration. We've seen that the portlet specification enables portlet developers to write applications that can run on any portal supporting the specification. Quite often, they will want to use features that are specific to a portal, and then make the portlet tied to the specific portal vendor for which it has been developed. One way to circumvent this is to keep the faulty portlet running in its portal and produce it so that it can be consumed by the newer portal on which more recent portlets have been developed. It can save a lot of money by reducing the number of required licenses for proprietary portals.
A lot of portals are able to integrate widgets like they do with portlets, again this is usually transparent to the user if they are using one or the other.