I liked the way you rephrased the definition of Subflows.
If I had to ilustrate with a didactic example, to explain the env variables and scope of the flow variables, it would be like below:
Code inside a function node (only node inside the subflow):
let reveal = env.get("hit");
flow.set("reveal", reveal);
node.warn(reveal);
return msg;
[{"id":"abf4e58f.f6ecd8","type":"subflow","name":"Subflow 1","info":"","category":"","in":[{"x":260,"y":100,"wires":[{"id":"ae738333.f44"}]}],"out":[{"x":480,"y":100,"wires":[{"id":"ae738333.f44","port":0}]}],"env":[{"name":"hit","type":"num","value":"3"}],"color":"#DDAA99","status":{"x":160,"y":30,"wires":[]}},{"id":"ae738333.f44","type":"function","z":"abf4e58f.f6ecd8","name":"Hit","func":"let reveal = env.get(\"hit\");\nflow.set(\"reveal\", reveal);\nnode.warn(reveal);\nreturn msg;","outputs":1,"noerr":0,"x":370,"y":100,"wires":[[]]},{"id":"4ffc9b47.f51954","type":"tab","label":"Subflows - Context and Env. Variables","disabled":false,"info":""},{"id":"8af8415.18c4bc","type":"subflow:abf4e58f.f6ecd8","z":"4ffc9b47.f51954","name":"Hit 1","env":[{"name":"hit","value":"1","type":"num"}],"x":350,"y":220,"wires":[["1ee3d4bd.c22dab","ae2617f5.882028","275f4561.d2038a"]]},{"id":"df0456d0.06d348","type":"inject","z":"4ffc9b47.f51954","name":"","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":true,"onceDelay":"0.5","x":210,"y":220,"wires":[["8af8415.18c4bc"]]},{"id":"1ee3d4bd.c22dab","type":"subflow:abf4e58f.f6ecd8","z":"4ffc9b47.f51954","name":"Hit 2","env":[{"name":"hit","value":"2","type":"num"}],"x":470,"y":160,"wires":[["275f4561.d2038a"]]},{"id":"ae2617f5.882028","type":"subflow:abf4e58f.f6ecd8","z":"4ffc9b47.f51954","name":"Hit 3","env":[],"x":470,"y":280,"wires":[["275f4561.d2038a"]]},{"id":"92e7562.c9d31a8","type":"debug","z":"4ffc9b47.f51954","name":"","active":true,"tosidebar":true,"console":false,"tostatus":true,"complete":"payload","targetType":"msg","x":830,"y":220,"wires":[]},{"id":"4c528dfe.26ec84","type":"inject","z":"4ffc9b47.f51954","name":"","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":true,"onceDelay":0.1,"x":190,"y":80,"wires":[["829ab29b.9a22c"]]},{"id":"829ab29b.9a22c","type":"change","z":"4ffc9b47.f51954","name":"","rules":[{"t":"set","p":"reveal","pt":"flow","to":"mainflow","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":380,"y":80,"wires":[[]]},{"id":"275f4561.d2038a","type":"change","z":"4ffc9b47.f51954","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"reveal","tot":"flow"}],"action":"","property":"","from":"","to":"","reg":false,"x":620,"y":220,"wires":[["92e7562.c9d31a8"]]}]