MT4 is similar to any other program and runs compiled code. This implies that it does possess the compacted code available. It does not even know what will happen inside an if statement, unless that if statement condition is fulfilled. You create your EA, Indicator, Script and save exactly what you know since your code in a file *.mq4. This can't be run by you unless you compile it and make a *.ex4 file. This is exactly what MT4 executes.
There is know known way to decompile this code. That is why you have people selling. They know it won't be usable. When there was a decompiler, someone would have heard of it and it'd be prevalent. It would be absurd to presume that Metatrader and all its customers, and brokers using the applications, could maintain a decompiler secret.
You may be certain that your code is invisible to the broker.
Another note: This is a client side application. Meaning you send a signal (buy,sell,etc) and it executes it. It logged on from multiple computers, or does not care if you're on your house computer, work computer, notebook. It does not care because it waits for a signal.
If you would like to do a test to find out if your code is being transferred into the broker(for you nonbelievers) only put an if(false) dumby code on your EA. After that you can make this code ridiculusly that is dumby large, state 10 Mb. This won't cause your ea to run slower because it will never get in this if statement, but because it's nonetheless code and the compiler never evaluates this if(false) statement to trim code size, all the dumby code will be transferred (if indeed that occurred ). You'd be able to see the transfer amount increase and increase as your broker takes your EA trap.