Today rustc
often canonicalizes paths even when given by the user (or at least tries to). This means resolving symlinks which in turn can mean the resulting path bares little resemblance to the path the user wrote.
I would think however that it's more user-friendly if the paths given in output and diagnostics were logically based on the paths given by the user. If they say /home/user/symlink/project
then assume that's what they want to see in output. I'd argue this is true for weirder paths like ../../../../project
.
There can be technical reasons why canonicalization is preferred but that should be an internal thing where possible and only shown to the user when an error necessitates it (e.g. some kind of filesystem error).