Puppet has historically been pretty tolerant of older clients on newer infrastructure. The big gotcha I found is you have to be careful to make sure any Ruby invoked client-side (e.g. facts) is compatible with the oldest Ruby out there. We often run one major version behind on some clients and iirc have occasionally run two for periods.