Force Vim's mksession to use relative paths?
You can't do that without setting up a wrapper function for it, AFAIK.
E.g. something like:
function! MakeSession()
let b:sessiondir = getcwd()
let b:filename = b:sessiondir . '/session.vim'
exe "mksession! " . b:filename
exe "edit! " . b:filename
exe "g:^cd :d"
exe "x"
endfunction