Instruction sequence for function calls

I was looking at some of the code generated by the compiler recently, and saw that, for some reason, the instruction sequence generated for function calls always consists of

movabs rax, offset j_func_n
call rax

instead of the shorter and more branch-predictor friendly

call j_func_n

and I was wondering if there was any reason for this? Or could this be classified as a missed optimisation?

2 Likes