The MAC address is usually a permanent part of the ethernet hardware. Most often, it is simply in a small ROM which the driver reads, and subsequently writes to one or more appropriate registers on the ethernet chip(set). Because of this idiom, it is possible to write any valid MAC address to the ethernet hardware registers, as you have noted. However, unless the driver
permits specifiying it, the address embedded in the hardware will be used when the driver starts up.
You may be able to solve your problem by not starting the ethernet interface at boot time, and then using the method you have already described to start it with the conditions you require.
For your distribution, try adding to /etc/sysconfig/network-scripts/ifcfg-eth0
Of course, use the MAC that you want, and change eth0 to whatever is appropriate, if necessary.