SOA isn't procedural.
OK, so, how in SOA would I instantiate a class, use a set method to change a property, call various methods on that class, change the property again, call the same methods again, all within the same block of code, all reusing the same database connection and other resources? Or how would I use one SOA service instance as a method parameter to another service instance and then act upon get and set methods within it?
I've got nothing against RPC per-se, but the idea that it's a panacea or a substitute for proper programming is misleading. It has a potential to be a nightmare, revolving your infrastructure around stateless and crude networked methods, which is all it ever seems to be. It also has the potential to spawn endless apps on endless platforms leading to a management hell further down the line, when what you need to be doing is sharing libraries on the same platform that guarantee efficient use of resources.
Yes, platform neutrality is appealing, but platforms offer huge benefits - user management, auditing, access control, resource management, etc, etc.
We love the idea of the network and the internet because they've brought us so much but the fact is those are sub-optimal paradigms. HTTP is crap. Web applications are a massive compromise of usability versus accessibility. SOAP and RPC enable machines to talk to each other across the wire easily. But be honest, if you didn't have to, why would you choose to?