If you symlink to an *existing* file, the symlink is changed to an absolute path.
However, if you symlink to a *non*existing file (or, a to file whose pathname contains a symlink), then you get a relative link:
cd
mkdir Tmp1
mkdir Tmp2
touch Tmp1/file1
cd Tmp2
ln -s ../Tmp1/file1 f1
# linking...