Hi Chris

You wrote:

In fact, on subsequent consideration, I'm inclining more strongly
towards SyntaxError, due to the difficulty of explaining the actual
semantics. Changing the PEP accordingly.

Your PEP, so your choice. I now think that if implemented, your PEP adds to the Python compiler (and also runtime?) tools for detecting and well-ordering Directed Acyclic Graphs (DAG).

Here's another problem. Suppose
  def puzzle (*, a=>...,     z>=...)
gives rise to a directed acyclic graph, and all the initialisation functions consume and use a value from a counter. The semantics of puzzle will now depend on the linearization you choose for the DAG.

(This consumption and use of the value from a counter could be internal to the initialisation function.)

-- 
Jonathan