persisting data to a filesystem and/or database is not the same thing
I really don’t see the difference. In one case you can store your object (or the data from the object) in a file or you can store the exact same data in memory. I don’t see how storing data in a different medium makes what you are doing conceptually different. Also, a PHP applicatoin that uses file-based Sessions is just as stateful as an app that uses memory based sessions. Both have the same issues when you scale.
What PHP looses in terms of speed when it comes to object persistance it often makes up in other areas. Also, as soon as an application grows a bit the amount of data handled escalades quickly and caching becomes harder and harder.
What other areas? I can only think of one advantage this gives PHP - that it makes it suitable for shared hosting environments. Also, I don’t think data size has much to do with how well caching works. Rather its how the data is being accessed, if on a given day 90% of the queries are for 5% of the data then its very easy to cache. There is also a lot of data that is essentially configuration info that is stored in the database when using PHP, this info is often accessed on every request yet could be easily cached if such a feature was available.
Anyhow, I find justifying these limitations has good for scalability rather funny.
They don’t make your application stateless, any interesting application on the web is stateful. They don’t make your application more scalable, in Java you can just as easily make your application distributable if desired (and likewise for .NET). These “features” are part of PHP because its primarily used to run small web apps using shared hosting (and PHP is great for this context), they make little sense outside of that context.