Refer to this thread for background...
The issue is when PowerShell auto loads the meta data into the CommandAnalysis cache it loads the functions defined in a script module (*.psm1) without consideration that a manifest file (*.psd1) may contain a DefaultCommandPrefix declaration. As a result if a user attempts to enter a function using tab completion PowerShell will offer the name as defined in the script module which fails to execute (name not recognized). Importing the module will make the correct name with prefix available for tab completion.
My recommended approach would be to include the DefaultCommandPrefix in the meta data cache during the initial population as a session is instantiated. Also, when a module is loaded explicitly by a user who specifies a -Prefix value the old references containing the DefaultCommandPrefix would need to be removed.
William Busby, PMP