If you define your own, say, repeat-until loop, can you use the built-in break and continue commands? Could you define a break-with-value command for the built-in loops?
Here [1] is an alternative do..while loop implementation provided by Tcllib, written in pure Tcl.
[1] https://core.tcl-lang.org/tcllib/artifact/4f7e97706ff67a40