Concerning service name and endpoint name, it is obvious that a Consumes can be specified without them, so that one can exploit endpoint resolution by the NMR as usually done with Petals.
In certain case, one could desire to nevertheless specify a specific service name, or even a specific endpoint name from its code, in accordance to what the JBI API provides to create exchange or resolve endpoints at component level.
Concerning the operation (and the MEP, they are related), one could decide to want to specify them in their route instead of the jbi.xml.
The justification could be that one does not want to declare one Consumes per operation.
Can you explain why a consume could not specify elements mentioned below ? Do you imagine to use dynamic service name, endpoint name, operation or MEP ?