We can surely do that.
But there is a disadvantage (unless we make a sophisticated system to solve this)
Here's the scenario:
Let's say you use a SMTP email server.
Let's say your SMTP server takes 1second to proceed the email. (Some SMTP servers could take 3-5seconds too)
Let's say you have enabled email notification for Admin, Store Owner and customer when a new order is placed.
Now in this scenario, when a customer places an order, there will be extra 3 seconds of processing during the order is being placed on the Customers checkout page.
And if you assume, you are generating multiple orders at the same time, then your SMTP service could become slow and even if it increase by 1more second, the customer will face 6second delay.
Getting my point?
To solve this situation, we need to add all the emails to the queue and set priorities for all the emails that are sent to the queue.
Now if the queue is implemented, and the customer places an order there is no email sending process done at that time. So the order is placed instantaneous.
But there will be a worker or a cronjob which will be running in the background in the server. This will listen to all queue entries and process them based on the priorities. (Every big companies follows this approach)
The only disadvantage with the queue system is that the worker that listens to the queue needs to run via SSH. (One can set it up using Supervisors)
And mostly in a shared hosting environment, I am pretty sure they donot get access to run Supervisors.