"got out of the mindset of relying on code running on a particular server quite some time ago."
I'm genuinely curious about this sort of thing.
Is your data purely ephemeral?
If not, how do you manage connections between the not-a-particular-server and the server holding the persistent data? Each time you invoke service you'll need to set up a connection between wherever it's running and the data server and that would include authentication - hopefully two way because the application server would need to know it's connected to the real data just as much as the data server would need to know the connection comes from a genuine application. This takes time and resources. In fact if I understood the account of the TSB debacle correctly it was this sort of issue that was the underlying problem.
Another aspect is that if you don't have control over where the application runs you can't be sure of the speed of the link to where the data sits.
I'd expect issues like this to be serious hit on performance when it gets into production.