Since you are configuring the sites, it's entirely up to you where you put them, though I recommend that you pick a structure and stick to it. As for what is convention/recommended, /var/www/ is a pretty normal location for web files, though /srv/www is used on some distributions. Serving from home directories is do-able, but it's a pattern usually seen on shared hosting (eg. cPanel) to separate users' files and isn't entirely beneficial in a private system (relaxed permissions or server running as a user).
Virtual hosts can, again, be structured any way you like. Personally I use /var/www as a base, with a folder for each virtual host, and the document root of each virtual host another level deep:
The `htdocs` name aside (just a habit), I find this structure useful to group both public and private (logs, scripts, etc) aspects of a site together.
There's a decent thread on the Unix Stack Exchange site about where /should/ website files go: http://unix.stackexchange.com/questions/47436/why-is-the-root-directory-on-a-web-server-put-by-default-in-var-www/
This Server Fault post is also related to your question: http://serverfault.com/questions/124127/linux-fhs-srv-vs-var-where-do-i-put-stuff