@Chris I am sorry if I was not clear as to what I thought was wrong. I am not suggesting that something should be loaded automatically. I am saying that the loadrt syntax is unfortunately ambiguous and misleading. I am also quite aware that a lot of LinuxCNC old timers are comfortable with the status quo, hence my initial hesitation to raise this subject.
Please take a moment and read
linuxcnc.org/docs/devel/html/hal/comp.html
while trying to put yourself in the shoes of a new user, one who may likely have been exposed to at least a bit of programming.
The document discusses a file name, component, function, and instances -- great but wait a minute, it quickly delves into introducing shortcut macros, special rules, default non-intuitive behavior etc.. By the time you will have read it the first time, you are guaranteed to not remember half of what was said.
My argument is that everything would be much easier if the syntax was a bit less cavalier, adhering to the distinctions between components, functions and instances. It may take a few extra characters to type, but it would eliminate large number of exceptions and rules in the doc above.
That said, and if I wanted to be more formal:
> For understanding, i take and function.
> loadrt and2 count=2 "load realtime function 2 times"
That, strictly speaking, is not an "and2" function. That would be an "and2" component which happens to have a file name that matches the component.
>addf and2.0 servo thread "add the function named and2.0 to the servo thread"
So here "and2" is the component, and .0 is the first instance, but what is the function name? (that's a rhetorical question Mr. Woodcock

)
I am simply suggesting that in my opinion if all of the special rules and exceptions (e.g., HALLNAME, C name, HAL name... help me jesus) were eliminated, life would be simpler.
Cheers