ColdBox Model Integration and interdependency

I am fairly new to Coldbox but have done quite a it of research into
its features. I am very impressed with what i see especially
conventions like
injection by annotations. One of the things i would like to understand
more about are people's approach to best practices on using/ injecting
functionality down into the model layer. I feel like there are so
many good plugins and other goodies that can be leveraged to do those
tasks that CB does well, like being able to use the MailService plugin
manage the sending of broadcast mails to subscribers of a newsletter.

I believe, and correct me if i am wrong, actually managing the
drafting of the mail itself is a core business function and a function
like say SendMail()
is reasonable to have in some form or fashion in a BO?

Perhaps the actual mail interaction part belongs up in the service
layer where interaction with CB is more common? any opinions?

either way....
I know i can i can wire up a CB controller to my model objects and do
pretty much anything that i want, but my colleagues are worried
about implementation details of writing to plugins that tie our domain
model to the framework and potentially orphaning alot of code if we
decided to disconnect our model layer and use it somewhere else.

What would be the best architectural (or practice) to minimize this
kind of an effect and ease their minds?

i am not sure i know what i am talking about, but i thought of
extending all our model objects from a base class that had a set/get
Controller method that would set up the CB controller for use in any
but i don;t know how to reconcile the fact that something like


in my model code needs to be preserved, stubbed or replaced by some
other mechanism somehow.

any insight into these concepts would be appreciated



I would suggest to read the model integration doc.

Also there is some new stuff for ColdBox-3 M5