And then we can have a route for that
In reality its just like a direct: endpoint but using route as scheme name. And in this case the id of the route will use the name from the uri, so it will name the route sendMail. Then you dont need to assign an explicit id.
Now suppose the sendMail route also have another source input such as from a jms queue
This route is now having the id sendMail which you can send message to using the scheme route:sendMail.
But the route also consumes messages from a JMS queue.