I maybe misunderstanding the situation, but coldBox handles mapping concept for you!
When I'm using inject="" or getmodel(""), the
model directory is not explicitly typed, because coldbox's model look up routine includes the model directory.
for example, if my directory structure is
/ ->webroot
/myCBApp
/myCBApp/model
/myCBApp/model/forum
/myCBApp/model/forum/forumService.cfc
/myCBApp/model/forum/forumDAO.cfc
/myCBApp/model/forum/forumDTO.cfc
/myCBApp/views
/myCBApp/handlers
/myCBApp/handlers/general.cfc
/myCBApp/modules
/myCBApp/modules/myCBModule
/myCBApp/modules/myCBModule/model
/myCBApp/modules/myCBModule/model/auth
/myCBApp/modules/myCBModule/model/auth/loginService.cfc
then in my handler (general.cfc) I write the following and coldBox will find it
local.oService = GetModel("forum.forumService");
or
local.oService = GetModel("auth.loginService");
also when i'm injecting, i do not use the "model" directory
<cfproperty name="oDAO" inject="forum.forumDAO" scope="instance" />
And for the links that get built, i use coldBox's appMapping configuration and the function event.buildLink("link to build")
The only time the above is an issue is when a module has the exact same "model" path as another module or parent application. Therefore, I have started including my own DSLBuilder configuration in every module to force a naming space convention, to eliminate any future conflicts.
so in my above example, i originally had
local.oService = GetModel("auth.loginService");
and now I reference that by
local.oService = GetModel(dsl="myCBModule:auth.loginService");
I hope this helps and doesn't confuse the situation.
Craig