It all depends on how your web application is designed. You can indeed pass "traditional http requests" through an established websocket... or you can process the request in the more traditional method. Unfortunately (from a sys-engineer's perspective) developers are lazy... and rarely go through the effort necessary to pass the bulk of traffic through an established websocket. It is more typically used to announce "updates" to various bits on the page... and the work of pulling image-data and whatever else is left to the more typical GETs and POSTs.
In short... yes... you'll tie up 1 process during the lifetime of each websocket... and 1 connection for each request. You can, however, make use of connection keep-alives to recycle the same connection over & over... but this may affect the overall page load time, as you must wait for each item to be sent serially instead of in parallel.
This is where the rubber-meets-the-road when it comes to Apache. You can change the Multi-Processing Module (MPM) to change how those keep-alive connections are handled... as well as a lot of other things to tweak the overall performance.
Despite all the fine-tuning you can do to Apache... sometimes it is not the perfect-tool for the job. Apache is the swiss-army knife in the toolbox. It is designed to be the most dynamic tool in the toolbox. Nginx is more streamlined, and doesn't include the tweezers or scissors options that you'll find in the apache-knife... and nodejs is just a butter-knife. Sometimes (when the environment allows) it is best to mix & match to get the benefits of all of them.