Strangely I think that removing return/break/continue is wrong. I’m almost sure I have used this in the past and have certainly used the loop else cases many times.
It seems obvious to me that return statements should always return from the enclosing method/function and break/continue should behave as expected for the applicable loop.
Clearly usage of these statements can be syntax errors if they don’t appear in the right scope, but that is true wherher or not they are used in a finally block.
For me Guido’s othogonality is a ‘good’ idea; try, except, else, and finally all end up as suites, why treat finally differently?