“Adding support” is the wrong way to think about this. The point isn’t
to make something possible, it’s to decide on semantics that are easy to
document, understand and reason about.
As far as I can see, the only reason for having the (IMO unintuitive)
parentheses-escaping semantics is to avoid having to change the AST. But
that’s letting the implementation determine the spec, whereas it should
be the other way around. The spec should be designed based on what makes
the most sense to people, and the implementation should do whatever is
necessary to implement it. And all the evidence in this thread says that
most people expect the short-circuiting not to escape parentheses.
I don’t think that changing the AST is that much of a deal-breaker. Type
checkers etc. are already going to have to be changed to accommodate the
new ?. operator, and we’ve warned people all along that the AST can
change between Python versions.
Also keep in mind that the AST exposed to Python programmers doesn’t
need to have the same structure as the one used internally by the
compiler. There’s already a translation layer between Python types and
the internal data structures, and some rearrangements could be made to
happen there if desired.