any functions defined in the included script will only work within the scope of that component so it can get included in multiple components as long as there are no function name conflicts.
Wait, you are confusing me!
Functions either are global
(and therefore fn name conflicts can occur and should be actively avoided) or they are local
(and therefore there'd be no problem re-defining in other components). Right?
What you say seems contradictory, that a fn is both global (cannot re-use the name in another component) and not-global (cannot call it from another).
If there are name collisions (resulting in error) because same fn was defined in 2 distinct components, that means it's the same interpreter instance that sees all functions, which means fn defined in component A can be used in component B. Now, "m" context is another story. you won't get A's data when calling from B - but let's not digress, let's assume pure utility fn like "toString()" or "isString()" etc
PS. we are talking only about the render thread only. Tasks and main threads - those be a different ball of wax (tar).