Hi,
Guest customization tries to determine and re-use product key for some OS/key types (mostly pre-Vista). In that case, sysprep's "generalization/specialization" shouldn't be an issue, except that it's allowed up to 3 times. If you want to lift that limitation, you would have to use different keys (either yourself in pre-customization script or patch sysprep.inf/.xml which guest customization relies on).
Otherwise, the best practice would be to rely on KMS (which always sets re-arm count to 1 and is available from Vista and above) in pre-customization script. In 5.1.1 we changed customization to apply networking settings before pre-customization script is run to enable this scenario.
You could also use "no SID" customization, but as far as I can tell that would be against Microsoft policy which requires using sysprep's "generalization/specialization".
/Andrii