First off, once your .wags and/or .engs start using Include() you can no longer use AE to create new activities that make use of them. AE (and RE too) just don't like them. Which means it is a bit of a problem putting Include() to use. They're fine so long as all that you are going to do is run existing consists. But if you're creating a new Activity you have to click thru n number of error messages to get into AE... and the same number when you try to save what you've done.
And don't even thing of using Conbuilder on files using Include().
So in practical terms you need two full installs of your routes: One using the original .wags and .engs -- where you run AE -- and a different one where you put your "Included" files and run OR. Absent a replacement AE this will be a bit of a bother for some time.
Second problem is about pathing within the domain of a mesh file. An example is needed to make clear what I'm describing. I took a model from the ET library -- a Fairbanks Morse H10-44 locomotive that's skinned for the Milwaukee Road. The download contains a number of .eng files, each representing a slightly different version of the locomotive... (maybe) some mesh differences and each instance is skinned uniquely. Becuase they're all in the same directory and share a whole lot of common data, the Include() file idea works very well... for example I created "H-10-44_Couplers.inc" and put a relevant Include() into each .eng. That works just fine. Doing similar things with other sections reduced each .eng file to a handful of lines and now If I want to tweek any values I go to the relevant *.inc file, tweek it, and it's automatically part of all of the .wags at run time. Way cool.
Where the pathing comes in is with this: What happens to those *.inc files when I have another instance of the H10-44 locomotive that is skinned for some other railroad? They're all relevant... and they're all in a folder titled "MILW_H10-44_#760-783" (n.b., the original folder was called H10-44-MILW-Reskin). So what happens if I had models skinned for the PRR, C&NW, and B&O??? I suppose their .wag files would have to say something like this:
Include ( "..\\..\\MILW_H10-44_#760-783\H10-44_Couplers.inc *" ) <--- see note at end of this post
Assuming that works. And having gone this far it becomes clear that the superior location for those include files in not is the MILW folder but in their own H10-40 folder. IOW directories more along these lines:
FM_H10-40 MILW_H10-44_#760-783 PRR_H10-44........
The implication is this: as the original mesh begins to take on more and more aspects of something representing the fundamental design of the locomotive or car the .eng and .wag takes on more and more aspects of something representing the presentation in-game of various instances. IMO this will require a certain amount of re-thinking on the parts of both OR developers, content creators, and end users.
Will a folder for, say, "3dtrains F7's" be accepted as the proper place to stick a bunch on standard-to-the-design *.inc files? And "SFRD_RR-40-32"? IOW folders w/ absolutely no reference to specific instances of .wags or .engs?
Will there be semi-standard names for these include files? Is "H44-10 Couplers.inc" a suitable name to promote... as opposed to "H44-10 Type E Couplers.inc", "H10-44_include01.inc", "Couplers.inc", or "Moe Howard Couplers.inc"?? Does it even matter (I'm inclined to say yes, it does).
Should the mesh file go into the directory where the standardizes include files are? IMO in many cases, yes.
What should one do when there are legitimate differences between versions of what is understood as the same kind of locomotive (or car)... such as an early version and a late version of the same locomotive (physical differences, such as more lights)? I would think the *.Inc files still belong to the class (The H10-44 level) but now the variation requires an Early whatever.inc and a Late whatever.inc; And because the mesh files are indeed different the question: Where do the mesh files go? Unique names at the class level or whatever goes in the instance directory?
My point is this is all new ground and I think it's going to take a fair amount of experimentation to get to a level where best practices are understood. In the meanwhile, given the AE issues I suggest folks try Include() experimentally so as to see the possibilities but not to go overboard and implement it fleet-wide as best practices... even features... are not yet understood.
* I've never liked the "..\\..\\" convention... especially if it is repeated all over the place. I've always figured using a mnemonic made more sense:
Path1 (..\\..\\FM_H10-40) ... Include ( "Path1\H10-44_Couplers.inc" ) Include ( "Path1\H10-44_Lights.inc" ) etc...
Easier to read... easier to edit.