as far as limits - so far I am conscious of only one real limit - well, rather a drawback, not an absolute limit - the size. A data_model of that kind can get huge and especially if people are connected via VPN and open an app using it, that might turn out troublesome.
You can, however - and we have tried that - create several different smaller DataModels, for just a few apps.
One thing we thought of trying, but haven't succeeded with yet, is
=> making a small DataModel that is sufficient for some apps and then
=> loading it BINARY into a secondary bigger DataModel and adding tables as per requirement for other apps.