That said, I'm not entirely against the idea of having a way for the
package.json to override the user's command line choices (similar to
CSS's "!important" feature), but it needs to very explicit in
package.json (ex: "forceBuildFlags" instead of the usual "buildFlags"),
and then the user needs to be informed when their command-line argument
is being overridden by the package.json. And then they'd still need a
way to override that (again, much like CSS's !important).

Absolutely, the idea was just to have something available, so the developer can prevent flags to be used, he knows won't work. Naming it "forceBuildFlags" or something and issuing a warning is definitely a good thing. Something like CSS's !important sounds reasonable.