I might have this wrong myself, but my understanding is that:
a "flag" is simply another term used by coders for a boolean (true/false) attribute.
when you "set a flag on" you simply are setting that boolean attribute to true/false, and when you "set a flag off" you simply are setting that boolean attribute to false/true.
I think "flag" is used, is because usually you have other script that activates or deactivates depending on whether the "flag:boolean is on:true or off:false", so when you "set" (change) the "flag" (boolean attribute), now you'll produce different results, due to your "flag" now having a different setting. so, you're "flagging" it, and thus where~how the terminology of "flag" comes from. Or, maybe it goes even further, to flag language, such as used in the navy, different (actual physical), or the number of the, flags mean different things, which can be seen from far away, or the flags are used to make it easier to see a movement which means something specific, think of like baseball signs, but the use of flags instead of the coach's hand, lol. Or, maybe it is like, "you raise a flag", the "flag of walking is now raised and the flag of flying is now lowered" and the reverse of the "flag of flying is now raised and the flag of walking is now lowered".
A "flag" represents the action that booleans attributes of true/false (and their switching~changing between true or false) do or are used to do, and so coders use the term of "flag", and~or a "flag" is recognizable by non-coders, whereas a non-coder is like, "WTF?!, is a boolean?", lol.
that is probably confusing, so let me use an example, lol:
the "player" has a boolean attribute called "flying" and it's value is set initially to false.
there's a key that is far above the "player's" reach that he must get. (the key has it's own script not letting it be taken unless the player's "flying" attribute is "true" = if flying, then take key; if not flying, than msg "What?!, Did you think you could fly?!")
while his "flying" is false, the "player" can't get the needed key.
however, the player has a flying potion in his~her inventory, and upon drinking it, it "Sets the flying flag" to "On" (true) or now has "flagged flying", and now the player can get the needed key.
---------------
yes, doors and exits are not noobie friendly, lol. there's been some complaints about exits (mainly exits) and thus their often corresponding need of a "door" object, to unlock the exit. people want the exit to act like a "door" itself, instead of having to create an additional object, a "door" object to go along with the exit.
-------------
in this case, you should ignore the GUI~Editor, and work with the code. As the GUI-Editor limits or confuses you, as it's the code lines that matter, and the GUI-Editor 's choices (container vs openable~closeable) thus limits you in what code lines are available for you to use at the same time.
you can have any code you want, even creating a "chimera" object that can do ALL (or any combination) of these things:
openable~closeable = a "door"
lockable~unlockable = a "door or chest or whatever"
container (open, closed, and~or surface) = a "container or something's top, like a table's top or a counter's top or a desk's top"
switchable (turn on/off) = "electronics or spell or whatever)
etc etc etc (see the different tab's options of~for objects)
if you want to map out what the GUI~Editor's options match to what code lines, please do so for us!, lol

for example:
choose some object to be a SURFACE container, and then check the code, to see what code lines are used (ADDED) for it.
do the same for OPENABLE~CLOSEABLE, SWITCHABLE, and etc etc etc
you can trick the GUI~Editor, choose the object to be a container, so you're given the lockable~unlockable options, select it to be lockable (so that, that option remains there), and then switch the object to be OPENABLE~CLOSEABLE instead of a OPEN~CLOSE container, and you'll retain the LOCKABLE~UNLOCKABLE options, as otherwise, if you just set the object to be OPENABLE~CLOSEABLE, you won't have the options of LOCKABLE~UNLOCKABLE.
so, thus, just work with the code, as the GUI~Editor is messy at best, or limiting at worst, lol.
--------------
P.S.
you can see Alex' quest engine's core's coding in the GUI~Editor by simply clicking on the filter in the lower left corner, and choosing to show all the stuff (or whatever it is called), it'll be shown as a light grey, in the left pane's "tree of stuff", you can see all the pre-set verbs, and etc, and see how Alex has them set up to work, though for you and me (for noobs or at least me anyways) the coding is a bit too complex for us to try to create on our own, lol. Though, it is very educational to look at, hehe.
This is where~how Jaynebonne has provided the "open" scripts in his~her above post (or he~she just looked at the core code provided online of quest, lol), for instance.