From what I understand of the rule, it's to prevent someone from making objects move in the background?
That's the correct reason, yup.
Weltschmerz had some very light point and click elements in it and was made in Ren'Py, and those screens are assembled using Imagebuttons:
transform explore_size:
zoom 0.78
xoffset -1941
yoffset -110
transform explore_zeke:
xoffset -950
yoffset -100
zoom 0.78
transform train_effect:
parallel:
linear 0.7 xoffset 2
linear 0.7 xoffset -2
repeat
parallel:
linear 0.7 yoffset 2
linear 0.7 yoffset -2
repeat
screen explore_1():
imagebutton idle "mg" action Call("anywhere_1") at explore_size, train_effect
imagebutton idle "fg" action Call("anywhere_1") at explore_size, train_effect
imagebutton idle "door_p" action Call("door_check_1") focus_mask True at explore_size, train_effect
imagebutton idle "zeke side" action Jump("proceed_1") focus_mask True at explore_zeke, train_effect
screen explore_2():
imagebutton idle "mg" action Call("anywhere_2") at explore_size, train_effect
imagebutton idle "fg" action Call("anywhere_2") at explore_size, train_effect
imagebutton idle "door_p" action Call("door_check_2") focus_mask True at explore_size, train_effect
imagebutton idle "zeke side" action Jump("proceed_2") focus_mask True at explore_zeke, train_effect
If you're using a different engine, then you can use whichever method is easiest for you. Good luck!