Yes, this is especially useful with Cowboy, since it does not have the concept of virtual hosts at all. You can spawn multiple cowboy instances on the same machine, moreover, you can start multiple Cowboy instances in the same Elixir application cluster, but they need to listen on separate ports.
I have hacked something around that allowed you to use the same Cowboy instance to "proxy" to different Phoenix applications, but it was far from perfect and in the end I abandoned the effort altogether.
This is the case when you want to have separate admin app, reporting app, web interfacr/api and maybe legacy app all running on the same cluster. In such cases you may spawn X Cowboys, but you'll need something like Nginx to make it all presented to the user as you want.
One more thing worth mentioning about Cowboy: it is very much reversed concept of web server to what you would expect from say Apache or Nginx. Cowboy does not start your application/scripts/web pages, it's the other way around: your app starts Cowboy. it's a HTTP server embedded into your app.