"Do the helper assemeblies get "netloaded" when used."
I believe that is exactly what happens. I have a similar situation to what you are describing, with a CadTools.dll that is referenced by all my other CAD related programs. My CadTools.dll does have some commands defined in it, as they are useful commands no matter which of the programs you happen to be using. (You can even load the CadTools.dll by itself, and just use those commands, without loading any of the other assemblies that reference it)
As soon as any of my primary programs is Netloaded (all automatically under various circumstances), the CadTools commands are available even though I do not have it set up for demand loading.
There is one other developer here at my company, and his CAD program references the same .dll. We used to merge our assemblies together (so that the tools .dll became a part of the primary .dll) but quickly found that meant we could not load both of our programs together because they contained duplicate definitions of everything in the CadTools.
Judging by your comment, I assume you have some of the same and some different functions in each Helper? Why not just make one helper .dll and reference the same one in both primary .dll's?
Or - you could pull all of the duplicate functions out into a Main Helper, referenced into both projects, and put the code that is different into (either the primary .dll where they are needed, or a seperate Sub Helper .dll) Honestly, if it does not make sense to combine your Helpers into one, then it seems to me that it would make sense that the functions that are different, really belong in the Primary .dll.
Dave O.