Before 9edd139, b41130e and others hashing and equality of pulse templates was only based on obejct identity.
The PulseTemplate.create_program argument to_single_waveform was designed with that in mind to target specific pulse templates in a pulse hirachy. With the above commits this behavior changed and all equal pulse templates get the same treatment even if used in a different context.
The new PulseTemplate.metadata attribute allows setting translation settings per pulse template which is the replacement for the above usecase.
We should modify to_single_waveform to only accept pulse identifiers again to avoid surprising behaviour.