Yeah, it could be.
Meanwhile, for your purposes, I think you utilize the builtin pre-<command> hook. For example, add this in your mercurial.ini file:

[hooks]pre-flow="flow_hook.py"

and you have to implement the "flow_hook.py" yourself. The document for pre-<command> is below:

"pre-<command>"

Run before executing the associated command. The contents of the command line are passed
as "$HG_ARGS". Parsed command line arguments are passed as "$HG_PATS" and "$HG_OPTS".
These contain string representations of the data internally passed to . "$HG_OPTS" is a dictionary
of options (with unspecified options set to their defaults). "$HG_PATS" is a list of arguments. If the
hook returns failure, the command doesn't execute and Mercurial returns the failure code.

The flow_hook.py has to do a little bit parsing to know the command is a feature close or what.