The workaround is already in use for ad hosting - serve all the content from one domain (or an IP) with services natted behind that, so if you block it, nothing works.
The ideal solution is custom clients for every service. Why use their proprietary software? We should make our own software we can use to connect to their servers. That way we can make it do whatever we want.