Hasn't been an issue at all yet with the 5 5069-L330s and 1 1769-L35. If you're going to be using legacy tags, definitely take that possibility into account when creating your UDTs. I typically include a "legacy" parameter for my UDT that changes the OPC path creation to account for the legacy driver. There is a significant performance difference.
I know that Phil will advise against 2 device connections, but it's been perfectly fine.
I typically prefer to have separate projects with independent tag providers for each project. I group alarms into tag groups when it makes sense (varies by application). As was already said, you can inherit templates from a parent project if that makes sense in your environment. Reusable templates is not an argument to make one big SCADA in my view because of inheritance. Importing UDTs into another tag provider is trivial and updating tag providers based on changes is also trivial.
Sometimes I will build a large SCADA in the same app too. It really depends on how the operators use the system. A lot of times I'm migrating from an existing system to Ignition so the framework of the existing system sets expectations of how the new system is architected.
In this case, it really is though. We're not saying don't use inheritance. I still do use inheritance. I have a "Common" inheritable project which houses things that any project would need (navigation, gui, tag history, etc.), and then other inheritable projects that have system-type (i.e. water, grain, etc.) specific templates. Then the actual project inherits from the system-type project.
I am saying that it's much easier to maintain one large project that runs on all gateways than try and maintain 5 independent small projects and one large independent project that is supposed to combine every aspect of each of the 5 small projects.