If you are looking for hard number, here are the known limits for sheets and tables themselves.
I don’t think we could ever reach the maximum limit of a sheet or table without completely bringing the app to it’s knees. Largest I’ve ever tried was 120,000 rows of simple data (couple of columns and no computed columns). I also attempted to show all 120,000 rows on the same screen. That alone pretty much killed my phone and worked my laptop pretty hard.
There’s still the limit (bottleneck) of glide and google having to synchronize data between themselves before any data synchronizes between glide and the end user. That’s a whole extra path that the data needs to travel. Even with row owners to limit data to the end user, the entire database still needs to travel to and from the google sheet. In cases like this, using glide tables exclusively or even partially will help.
The effective limits are when when the app stops working effectively. That limit will be different for each and every app. My app doesn’t have what I consider a lot of rows and works great, but I have one tab that triggers an intense amount computations and relations, which causes the app to freeze for a few seconds while it’s loading. After that, it’s fine. It’s not the number of rows that’s limiting me. It’s the amount of work that I’m requiring my device to perform against those rows.
So many factors come into play. Results will differ per app and per user. I can’t theorize when someone else’s app will hit a limit. That’s just impossible to do. My recommendation is to just create a massive amount of test data. Test, test, test. Push the app to the limits and find out what does or doesn’t work.
Just realize that the end user’s device is downloading and caching a duplicate of the entire database (minus unowned rows), and doing all of the computations and calculations, and obviously rendering the screen. That’s your limitation right there…the capabilities of the end user’s device.
I’m sure Glide takes a bigger financial hit (as far as storage and bandwidth costs) when the dataset is large, but that’s averaged out among all users. If it ever got out of control, I’m sure glide would be having a chat with that user. I’m guessing that glide does not strictly enforce the 25k limit because, with the way the glide infrastructure works, you are going to run into several other bottlenecks before even coming close to a hard max row limit. If/when they change how the data is handled on the back end, then I would be willing to bet that they will have tiered pricing based on the amount of data needed…and the app would no longer be caching entire datasets, but instead it would lazy load data as needed. But, that would require them to completely redesign how glide works now.