Thanks for the continued assistance, Guy!
1. I have yet to find an example of an intermediate message event that does not have an outgoing message flow leading to another event or task in a separate pool. That is, I've not seen the 'sequence'
[task] --(sequence flow)-> [message event] --(sequence flow)-> [task].
All I've seen is
[task] --(sequence flow)-> [message event] --(message flow leading to separate pool)-> [event or task].
If the former is acceptable, I'll just put the Accounting Clerk and Programmer in the same pool and different swimlanes. Pardon my ignorance, but I've searched exhaustively for an example that resembles the former format and couldn't find one. Then again, common sense should tell me that I shouldn't be forced to create a separate participant every time I want to model that an e-mail is what triggers a process.
2. Great explanation. I'm getting better at this part.
I'm a developer. I've learned that not adopting some form of standard generally leads to some degree of chaos. For example, we had people on our team not adhering to (X)HTML and DOM standards. As a result some of the Web pages may look nice in IE, but disastrous in FireFox. By not adhering to the DOM, some of our functionality produces unexpected results when tested in various browsers. Adhering to standards does not eliminate, but surely does mitigate problems.
I totally see what you're saying; but I'm pretty apprehensive about not adhering to standards. After reading some of Bruce Silver's critiques on invalid BPMN, and considering that he's very knowledgeable of it, I simply chose the 'valid' route. Plus I think that our stakeholders will appreciate the consistency.
Again, thanks so much for helping me out, Guy. This is invaluable to me.
vinny