Depending on the definition it is or isn't virtual hosting. It does use the header to determine what to serve. It does not offer a completely separate environment to each virtual site. It does use a different database and pageroot for each virtual site.
For me, if I am managing a set of sites, I find it simpler to have the same functions on all of them. The functions you mentioned could easily be customized to pull their values from the virtual server's parameters/<servername>.tcl, the database, some site templates, or just to use a bunch of if statements. In fact, they probably should do that anyway since they are really part of the front end face to the public and not really a backend function like the rest of the functions.
For me it beats updating a bunch of sites with the exact same information and risking overwriting a function that I customized without thinking about it in addition to being great for a bunch of small sites that I would still like to have all the OpenACS features without the overhead of a separate environment for each of them.