Changing user-data bytes is not a new-instance event. By default, cloud-init decides whether per-instance modules may run from instance identity and cached state, not by hashing the latest user data and comparing it with the previous copy.
A reproduced NoCloud lab below makes that contract measurable. The first ...