I use MouseButton1Click across two different scripts, one that control's a text button's visuals and the other that runs the actual code this helps me declutter the main script.
My question is simply whether it is inefficient and/or impractical to do this?

7 comments
While I haven't quite gotten an answer, I'm going to simply use Bindables for this. They're simpler.
It's not inefficient, of course it's better to merge it into one script or module scripts but in your case you don't seem to care about the order of the callbacks, say if you wanted for visuals to execute before the code this method would be not the best because you would not be able to control the order. if not use module scripts then BindableEvents will work for it well.
I never thought of the order of events, though I doubt it matters in my case as most of the related code is run locally so there should be no delay. Could you explain what you mean by using a module script here? I don't think I'd need to do that since the code won't be used anywhere else.
I am not sure if module script in here is that neccessary but what i meant is that if you say you have main script and you don't want to clutter it, instead of creating separate scripts, you can split the script into module scripts and each of them will be made for separate thing. For example you have module script ButtonFunctions and your main script will call functions from it when event fires.
This will organize your code, it will also help to clean the clutter in the script. It is also more efficient because each script runs in separate coroutine (thread) which is unneccessary when you can have one thread and all module scripts run inside of it.
Oh haha, fair enough. That was also one of the ways I thought of making the gui, I just avoided it since the buttons are all nested in the script's parent's child's child and that would be kind of ugly to see. If you don't mind, could you paste your original comment as an answer so I can accept it?
My answer was not the greatest, not sure i want it to exist on my profile but alright.. more reputation - more flex