In regard to the "addons add complexity and that slows down the sim":
Hmm, not that much of an issue from my point of view. I think the add ons aren't that optimized maybe or the actual connection to the sim slows everything down. As far as I know a lot of aircraft add ons do a lot of computation outside of FSX in their dlls and in X-Plane you have lua scripts I think. That could be the reason why the performance takes a hit but I'm not too familiar with their architectures. Not my job to build aircraft for the other sims
All I can speak of is my years of experience with Aerofly aircraft development. At the moment the engines swallows everything I throw at it. There isn't actually that much computation needed in our architecture, we have our simple building blocks that run relatively short code, only through the connection of them we build up the complexity. So the code is still simple and very optimized because it doesn't have to check a lot of things, each thing does their intended purpose and we're good. Even talking about other complex systems like fuel, electrics, etc, we have already added that in some aircraft and it's still running just fine. I think the engine will be able to calculate even double or three times the dimension of freedoms that we have right now, no problem. As long as it stays in the engine and we don't do crazy stuff to waste computing power, e.g. having a weather or terrain radar scan every cubic centimeter, there shouldn't be an issue. We can just implement things like weather and terrain radars the way they work in the real world: scan from left to right and back and then there won't actually be a performance hit. I think it's stuff like that where the add-ons for other sims may not have enough access to the core and thus need more computing power, e.g. to run a weather radar.
For the future we will probably just keep adding building blocks and with that you can create your aircraft in the tmd files. We/You can create insanely complex systems with failures and what not and you don't have to code anything, just connect the objects that exist. This way performance stays very good and is not an issue. We may have to add dll support in the future, but then performance could decrease if the other end doesn't code it properly. We can't control what code they run outside of the Aerofly and if they don't optimize it and do crazy things like wait for a download or a file to read or something, sure that could slow things down.
But just us adding complexity the way we do it now, will that slow us down? Na, we're good!