I'm not sure what the actual beef might be with that solution. Here is an explanatory paragraph to introduce the FAQ, which may be all it needs.

On systems which follow Unix shell conventions, a user may
supply a pathname with the tilde (~) character to refer to
the user's home directory (e.g., <c>~/file</c>), or another
user's home directory (e.g., <c>~user/file</c>). This works
in many Unix shells, but often does not work in scripts or
applications by default. If your script would like to
support this convenient but optional notation, then the
built-in <c>getpwnam()</c> function and <c>%ENV</c> hash
are the best places to refer, or use the newer globbing
features that support them automatically.

On non-Unix systems, it might be broken. On non-Unix systems, though, the users are less likely to want to use Unix-isms like shell notations that scan /etc/passwd for data. Wrap the whole thing in a $^O if you like.