Correct place for Billing/UX events logic in Cobalt Website code layers

Per my [previous question regarding Website code layers][1], what the reccomended breakdown for where events and billing logic should be handled in Website? To me, this seems to be a concern of the workflow layer, but the platform base controller has methods like InitializeNonTransactionalBillingData(...) in it which pushes this logic into the controller layer. Is there official guidance regarding this design? Are there examples where this work is being done in a more appropriate layer? [1]:
http://techoverflow.int.westgroup.com/questions/1502/cobalt-website-code-layers