The way you found to replace controls by saving a temporary ctl and using its path as input is exactly the way the replace array/scalar with scalar/array works, as can be seen here:
https://forums.ni.com/t5/LabVIEW/QD-Shortcut-Chage-To-From-Array/m-p/3072966#M877289