By "main g-code" I meant the g-code that goes in between the Start g-code and the End G-code in creator. In other words, it's what creator makes when it slices the object, but before it has added whatever you put in the start g-code or in the end g-code.
The reason this matters is because it's sort of a black box. We can see what the start code does, and then this gets handed off to what I'm calling the "main g-code" My assumption is that the first thing it does then is perform an absolute position of the bed/nozzle to begin laying down filament. That's the only way that makes sense to me. In which case having set z=0 with your macro method, you should be ok. Its just a theoretical possibility that someone's slicer could stick a G28 inside that black box and ruin all our schemes. But if you watch the way the print starts it's pretty clear creator isn't doing that.
The other thing I was trying to say is just that if you change the start G-code this way, then you've created a situation that is unique to your methods. For example, you might save the .fff file because it also contains some great settings for some particular material you've been working with, and then give it to someone else who's also working with that material. They won't know what's going on with your start G-code, and probably won't even look at it. But then if they print with it they'll be in for a surprise.
This is a pretty obscure point though. It's a reflex reaction on my part from my past life as a software developer. You should just ignore it and move forward. I think your method will work and I'd be very interested to hear how it goes if/when you try it.