Bindables should pass through parameters directly rather than serializing/deserializing

Why would core scripts stop this? Even if it’s a different environment, can’t you pass a pointer to the memory location and copy from there? There has to be some intermediary script, either core or normal that does this in the first place (I would assume the core script because iirc each connection gets a different copy of the table) so if that’s true can’t Roblox just copy there? (If rawget wouldn’t work, why wouldn’t this?) also why wouldn’t rawget work.

Is there any way to script your own bindable and avoid using Roblox bindable for the :Wait() function (even if you don’t pass arguements through them) while at the same type not doing a while not flag do wait() end loop?