Your problem is the "~", which isn't really part of the filename, but instead a shorthand for your home directory. You can use expand() and then resolve(). eg:
:echo resolve(expand("~/some/symlink"))
expand() will also expand things like environment variables (eg: $HOME, $VIMRUNTIME).