"You mention occupancy, but for the Belgian code that field would be pretty much useless. We would need a field that is driven by a formula that would calculate the max possible occupancy based on room type and area. That can be done through a formula field in the schedule for example. The OTB occupancy parameter would just be there to confuse people."
Now - see - that is exactly the same thing done in the US. Room Type x Area = Occupancy. (Of course that Occupancy can't be tagged - which we have to do - because you had to make a calculated field.) And from my travels, pretty common around the world. Why should everyone start from scratch? Stick the field in. Let it be driven by a formula. Or not. Just give me a place to stick data I can depend on.
From the viewpoint of someone developing custom content, you know your stuff isn't going to be universally usable except for the information in the most rudimentary BuiltIn parameters. If I manufacture doors and make a parameter called "Under cut" and another company makes a parameter called Undercut, another does something like Bottom_Gap and another doesn't have the field at all, all of that information is useless. So all that data is lost. Or people spend a few hours rebuilding the family to make it work with their particular office standard. Or like many offices, they don't allow downloaded content to be used at all.
From the viewpoint of someone writing custom software for Revit, which I'm doing, not having the BuiltIn parameters means that you have to custom code for everyone's personal pile of shared parameters. Or you have to force your own code generated parameters into someone else's process. In the US we use net for some spaces and gross for other spaces on code calculations. So I have to generate a shared parameter with a GUID I can depend on, that may conflict with a name that someone else used to store these values. Then pump the data into these custom fields - do a few dozen calculations this way for occupancy. Do another few dozen calculations that way for toilet counts and stuff that into places that don't exist.
Or I could hide all your data in custom dictionaries inside Revit that you can't see or understand and make you pay high yearly subscription fees to access and use your data. Because only my software can read my data in your file. (This is a LOT simpler for me as a programmer. And that's where AutoCAD went with all those Object Enablers.) I'm not an advocate.