Now that we have both raw mode (#3852) and a proper batching API (#3860), we can add an AppContext switch which disables all SQL parsing/rewriting. When this mode is active, only positional parameters would be usable, and trying to use legacy batching (i.e. including semicolons in CommandText) would fail.
Aside from ensuring best practices in user code, this would have the concrete advantage of avoiding SQL parsing/rewriting for commands with zero parameters (e.g. TechEmpower Fortunes); we currently parse these since they may contain a semicolon
This would be opt-in.
Based on conversation with @NinoFloris.