What is even more appalling is that there is no way to inhibit the swallowing of the options.
Sure there is, it is just a matter of code. Check out --classpath and option_map for example in gcc.c. Sure seems like it isn't harder than adding one line per option. Would be even better if these were done by a lang fragment that then combined to form this table, but, you get the idea.