wut... but if they get inlined, the whole point of the function call is gone.
Anyway, back to topic.
Struct variables are never really a problem, because they are integers in the end anyways, so that shouldnt cause anythnig to break.
Function calls do have to be declared before usage.
Using libraries to organize the functions is highly recommended.
Struct methods are practically no difference.
However, if the JASSHelper finds a function being called before reference, it doesnt give a compiler error but instead creates a trigger and adds the function as condition to that trigger.
This will cause the function call to be replaced by a trigger evaluation of the respective trigger.
You should try to avoid them as much as possible, but if required, it may be used ofcourse.