I’ve shared your frustration, while noticing that no matter how emphatically you tell your machine to fix (G1 feed rate) plunges and retracts it never listens. There’s a tool posted here to optimize retracts and plunges. I use an open source program, GCodeClean, that does a number of optimizations including intelligently converting plunges and retracts to G0 where appropriate. It worked well on older versions of Carbide Create. It also does traveling salesman optimizations by breaking gcode into blocks separated by travel moves and reordering them with a TSP algorithm. That’s currently somewhat cumbersome to use but did cut run times noticeably on the longer jobs I tested it with.
From reading the descriptions of both Fenrus’s utility may be doing a better G1 to G0 up/down optimization since it keeps track of where layers start, so you might want to try that first.