The man page states:
Shadow PasswordsIf the machine is using a shadow password system, then xlock may not be set up to get the real password and so must be given one of its own. This can be either on the command line, via the -cpasswd option, or in the file $HOME/.xlockrc, with the first taking precedence. In both cases an encrypted password is expected. If neither is given, then xlock will prompt for a password and will use that, also storing an encrypted version of it in $HOME/.xlockrc for future use.
It seems to say xlock cannot use a non-root user's password in systems which use shadow passwords. I didn't notice it before, but the .info points this out. xscreensaver-base has a number of dependencies, but xtrlock-2.0, xlockmore, and xautolock-2.2 do not have any. Lots of choices.
I never tried encrypted home, so I am unfamiliar with its operation. It can secure your data, but the system itself would still be just as open.