What is the right way of installing Drush?
You do not necessarily have to run composer create-project drupal-composer/drupal-project:8.x-dev some-dir --stability dev --no-interaction to create a new Drupal 8 site using the drupal-project composer package. 

You can also just download the composer.json of that project and place it into your future Drupal 8 base folder. Then you can alter the installer paths within that composer.json to your liking. So if you prefer public over web as your Drupal root, then rename that part of the installer paths. You may also wish to alter the project name or other details of the composer.json file.

After your customization, you can then run composer update to generate an according composer.lock file. Assuming you did so on a local development environment, you can then use composer install --no-dev on your production system after uploading your composer and custom files/checking them out if you use a code versioning system.

Coming to the folder structure: It is advisable to keep the folder above the Drupal 8 root as base folder of your root package (project), location for the composer dependencies (vendor folder), Drush site settings, and auxillary files that should not be directly accessible from your web URLs (e.g. exported configuration files, private files, temporary files, Node.js packages, ...).

Therefore you should consider pointing your virtual hosts' root directories for example to /home/username/public_html/web (or /home/username/public_html/public, if you customized your composer.json like that) while using the regular root directories of your hosting panel /home/username/public_html as composer root package folder.

Depending on your hosting panel, you may have the ability to alter the vhost root directory by overriding the web server settings (e.g. defining a DocumentRoot for Apache, or a root for Nginx). How to do this depends heavily on your used hosting solution and is therefore off-topic in Drupal Answers.

And yes, you will have this folder structure on every of your projects. As every project may require a different version of dependencies, different modules (which may add dependencies with certain version restrictions to the vendor folder as well), binary tools for the shell, probably applied patches and so on. These dependencies and their version requirements are project specific, even when you use a global Composer installation.