In 2.x, the inclusion/exclusion of certain context types was different across the board. Some scripts included all functions, some didn't. Currently in 3.x, all function code templates are being included all the time. So in general it shouldn't cause any problems, but it's still possible for things to break from 2.x to 3.x if the user was dependent on certain templates not being included in certain scopes. Remember that you don't have to only include function definitions in a function code template. You can include any arbitrary code you want, and that code will be compiled in with your channel's scripts, such that when the scripts run, the code template code will also run.
I think part of this may be figuring out / deciding what the different context types should mean (