ふむ。
あれ?
> /home/[ユーザ名]/public_htmlがVirtualHost個々のDocumentRootです。
これってちょっと特殊な要件だね。すまん、見逃してた。

<VirtualHost *:80>
DocumentRoot "/home/foo/public_html"
ServerName foo.example.com
</VirtualHost>

って感じ?だとすると、たぶん SuEXEC としては UserDir としての
アクセスじゃないから動かないと思う。(確かめたわけじゃないが、
かなり厳密に動作環境をチェックしてたはずなので)

おおもとのホスト名が www.example.com だとして、
まず http://www.example.com/~foo/ で SuEXEC での動作を確認し
て、http://foo.example.com/http://www.example.com/~foo/
にリダイレクトなり ProxyPass & ProxyPassReverse なりしてやる
のがいいんでない?

注意点としては・・・
・本当にできるかどうかわからんw
・規模が大きくなるとパフォーマンスでないかもしれん
・ProxyPass つかうと VirtualHost側に想定するログが出ないかも
(全部アクセス元が127.0.0.1とか)
・同様にIPアドレスベースでアクセス制御考えてる場合は破綻するかも
などなど。まぁがんがれ。