Turns out a (carefully written) link in one document will render as the contents of some part of another document. Possibly more useful in this context is https://help.obsidian.md/How+to/Embed+files
I've been trying literate programming in obsidian and that looks like a very direct solution to having source code in separate files, which all the tooling definitely prefers, which still renders inline from the main document.
Does broadly work - the ```C ``` style block disables the embedding, so the markdown syntax to pretty print the code needs to be in the source file, not in the file that embeds it. Also the ^block_name syntax can't be on the same line as the closing ```.