Thanks for your answer!
You likely need to extend `org-babel-scheme--table-or-string' to
understand Image: type.
It looks to me that when `org-babel-execute:scheme` gets executed, then the result will not get inserted as a link, as that would require the results type 'file', right?
From the
manual, it seems to me that using the 'file' type is required to get the result inserted as a link.
However, I can not see how the code does the following as explained in the manual.
If ‘file’ header argument is missing, Org generates the base name of
the output file from the name of the code block, and its extension
from the ‘file-ext’ header argument. In that case, both the name
and the extension are mandatory.
suggesting that a file gets written also when there is no :file header argument.
But from the `and` condition
here in `org-babel-execute-src-block`, it looks to me that a file is only written when a :file argument is provided (via the `with-temp-file` that follows within the 'when file ...').
Anyway, this I only found when trying to find out how the result gets formatted as a link.
I guess to get the racket `Image` file-path to formatted correctly, it would be preferable to only touch ob-scheme for that. In which case, I think the 'result' under 'org-babel-result-cond' at the end of 'org-babel-execute:scheme' should get (re)formatted conditionally (when the results is a racket image (link)).
So in the end, I conclude that maybe the advice as mentioned in my 'original' mail, might be already the 'cleanest' solution (and that it does not cause any problem concerning a file getting written to disk, as luckily, org does not seem to write files when no :file header argument is given). Anyway, I am struggling to find out how to come up with an alternative clean(er) solution.