Is it possible for workflow to write different channel value to BroadLog from chosen one?
Update broadlog after workflow is finished is not an option, there is need to automatically write a specific channel instead of chosen one.
I believe you can either come up with standard code/naming for your non-email delivery which campaign or reporting teams can later parse it to pull the proper channel or you can extend the NMS Delivery schema to add a field to capture the real channel code (extend schema, change delivery form).
Keep in mind the ACC promotion history table (BroadLogRcp) is detailed down to the delivery level. If you want to promote a recipient to receive multi touches/messages via different channels in a given campaign, it is better to connect your campaign/segment universe to multiple deliveries. The ACC promotion history will that person x was targeted in EM, DM, SMS, etc. in a given campaign.