Optimizely has a set of processes to check for changes in method signatures and constructors that are in the public surface area and call those out for documentation if we have to make changes - these are considered "breaking changes" and we document them.
In Cloud, if the custom code references something in the private surface area, it will not be allowed in the environment and will fail our deployment checks.
The WIS stands on its own and that code is not deployed in the site and is not specifically checked for backwards compatibility. Please be aware that if you override anything in the WIS, it is subject to breaking since we do not guarantee any backwards compatibility in the WIS - we just make sure we didn't break functionality.
Updated 6 months ago