Agreed! This is exactly the same situation in hand at the moment.
“1. It should be possible for any application to be able to display everything in an IFC file.”
This goes against the IFC mission to date, was never intended, and is technically not possible, hence, we have Model Views, Not the so-called “ifc files”. Model views work well for both practical implementation in daily practice, and for certification. Why do we need to “see everything.” What does this even mean?
A Coordination View or Reference View for Road, Rial, etc. would be suffice and could be imported into Arch based design applications if needed. These tolls could get certified for the Model Views as they do now using ISO 10303 part 21, or even other parts e.g. 28, 26, etc.
Overlaps of data in two different domains, if required, can be define in a specific model view as is the case now, e.g. the WSie Venne Diagram I shared which use Plumbing, Architectural, HVAC, etc. This is perfect for the exchange of non-editable plumbing systems, suffice for drawings, coordination, simulations, and capturing, verifying, and validating FM data from that phased of the project life cycle. Short hand formula for such file, lets say using schema 2X3 tc1, would be: WSie = CV + COBie + IfcPort
In fact, the exact same method could/should be used for water systems within an Infrastructure Domain. That software which is used to author such a model view, could easily be certified for import and export of said file. Short hand formula for such file, lets say using schema IFC5, could be: Infrastructure Water Systems information exchange (IWSie = RV + (Similar Reqs as COBie but it would be technically something else) + IfcPort, where IfcPort defines the distribution/Rel connections so the flow of infrastructure water can be managed, simulated. This file could also be imported into Arch based tools to analyse the connection to facilities, etc, where this Arch app, e.g. Graphisoft Archicad could easily get certified for the import of such a model view. Many of these application are already designed for there API to handle such geometry. Those which are not, already have a problem in this regard and modularisation as defined in this scope would not solve those technical rendering, serialisation, etc. issues. I can envisage cases where it would actual be worse. Conforming to the new approach, said modularisation, would actually make software compliance much worse, and in many cases the problem will actually not ever be solved, e.g. Graphisoft Archicad uses the IFC2X3 tc1 CV 2.0 MVD for its so-called “General Translator”, with seems like an add-hoc way to do such a modularization approach…but its technically wrong now, and presumably in the future where one could easily see such a vendor trying to conform with modularisation by expanding their currency existing default “IFC Exporter”, which is no more than the CV 2.0 MVD, which can easily been check/sought in the STPE Physical File header.
“2. An application should be allowed to specialize on their own domain. For example architecture. So they shouldn’t be required to manipulate anything else.”
This is the way it is now, as mentioned above. A problem here, which cannot be controlled, if folks forcing application to do things they were not built for, e.g. road and rail in Revit. Such applications already struggle to comply with exist MVDs, much less domain specific outside the scope of enabling the extraction of 2D drawings from 3D models using cut plane algorithms, etc. While 3rd party apps, e.g. COBie Extension, can be developed and tested for compliance, such solutions are are suboptimal versus other applications were the API can actually handle this type of information without the need fro external databases, GUIs, etc.
I guess my point in general is that, to bring such modularization into practical use, i.e. by engineers designing etc., it would likely cause more problems than solutions, due to already existing software limitations. I would hate to see another 30 years go by and we do nothing more than replace the light-table, again! 