I prefer to use callfunc because you can have cross plugin communication without one plugin requiring another.
What I mean by that is Plugin A can execute a forward in Plugin B and plugin B can execute a forward in Plugin A.
Also, callfunc can allow you to set byref arguments easier and such.