The inherent problem with relative paths is: relative to what?
Relative to the working directory of the immediate child of the terminal emulator (typically: your shell) at the time of ctrl-clicking would be pretty much useless, all your links would break as soon as you
What you'd need at the very least is to be relative to the directory of the child process at the time the text is emitted. This raises some problems. First, the terminal emulator needs to be aware of its child's working directory (via e.g. the OSC 7 sequence, or some closer shell integration like in iTerm2), which then could still be incorrect during the execution of utilities that internally change their working directory (e.g.
make). Moreover, emulators would need to remember this information for each and every printed character cell which could be quite expensive.
You might be interested in a pretty new feature of certain terminal emulators: explicit hyperlinks. Using a special sequence, the visible text can be turned into a hyperlink pointing to any location. The target of the hyperlink still needs to be specified as an absolute URI, yet the displayed text could be whatever you want (maybe just some relative pathname, or even something utterly different).