There's two different things to talk about; the coordinate systems, and that G0 move that you say is crashing.
The WCS
You didn't say which postprocessor you're using. If it's linuxcnc, the preamble has always inserted a G54. After the change, the preamble G54 is still there but probably doesn't need to be because it will be inserted as needed. G54 is the linuxcnc default WCS.
The new logic is implemented in src/Mod/Path/PathScripts/PathPost.py around line 290. Basically, it looks at the 'order by' preference and rebuilds the list of all Path objects to be post-processed. If there are mutiple WCS, it duplicates objects as necessary. Any time it needs to switch between WCS, it builds a new object inserting the command and a command to move up to a safe height. Once the complete list is built, it hands it to the post processor just as before.
In theory, if you just accept the defaults (only G54 selected and order by 'fixture') and are using the stock linuxcnc post, you'll get the same gcode as before.
In fact, you'll actually get G54 in your gcode twice, once from the preamble and once for the WCS.
Are you saying you generate gcode without ANY WCS and then select it manually on the machine when running the job? That's a use-case I hadn't considered and nobody mentioned it when I did the
devnote discussion a few months ago.
It shouldn't be too difficult to support though.
The Crashing G0 move
You'll see around line
290 that it moves to the StockTop before transiting between coordinate systems. Rather than the top of stock, I think this should be the Job clearance height which would be calculated as 'OpStockZMax+SetupSheet.ClearanceHeightOffset'
Even so, if you're touched off properly, I don't know why this would be a crash. It should just be moving to the top of the stock.