Bounces are send with an empty envelope sender in order to prevent the bounces from bouncing and potentially introduce a bounce loop.
You could do the same with your mails to prevent them from bouncing. In the SMTP transaction it would look like this:
Though this is just about the most efficient way to prevent bounces it does have a couple of potential drawbacks.
The receiving end may see the use of an empty envelope sender on an email that isn't actually a bounce as a spam signal. Thus your email could end up being rejected or automatically trashed.
Most likely you do not deliver emails directly from your application to the MX of the receiving domain but rather through your an MTA run by yourself or a service provider of your choosing. This MTA will thus have to deal with the delivery failures and if it cannot bounce it may instead produce noisy logs.
The later problem can be avoided by delivering mails directly from your application to the MX of the receiving domain (notice that some hosting providers will block such traffic). By delivering mails directly like that means that delivery failures will be seen directly by your application.
Usually this is fast enough to use for interactive usage, thus when the user submits their email address you can immediately tell the user if the email address does not exist. Though keep in mind that though it is usually fast it is not unusual for this to take 5 seconds, which is enough that the user need to be shown some sort of progress indicator to know their input is being processed.
In case the receiving domain implements greylisting, you'd need to include retry logic which could cause the progress indicator to be visible to the user for minutes before they get confirmation. But without the progress indicator they'd still have to wait for minutes for the email to get through, so the progress indicator being shown for minutes would still be an improvement UI-wise.
Given the complexity of implementing all of this in the application most opt to just send the mail through an MTA and let the user deal with checking their email repeatedly until the email (hopefully) arrives.