is it possible to send transactions back and forth between all 3 address types (legacy, segwit, native segwit-bech32)?
Yes, of course. It's totally normal at protocol level.
Just like what Murch had said:
There are no restrictions on sending from any type of outputs to any address type in the Bitcoin protocol
The ability to limit where the "unlocked&...
There is the annex, leaf version, ext_flag, OP_SUCCESS, unknown pubkey types and you could probably include the existing witness version too. I believe that list is exhaustive.
The ext_flag isn't so much an extension mechanism in itself; more a structure that permits safely reusing the sighashing code (as opposed to needing a new tag or other mechanism for ...