Regarding testing for Granger causality in presence or absence of cointegration, I find the extensive blog post by Dave Giles "Testing for Granger Causality" very helpful.
[M]y question is whether it makes sense to model stock prices <...> instead of log stock returns (not diff), when we are interested in returns. I get that when I am interested in X, I should just leave it in levels even if nonstationary. I wanted to ask whether it still makes sense to model it like that when I am interested in the return itself.
Let me contrast the subject-matter problem to the statistical problem. From the statistical perspective, to ensure the validity of your results, you need to follow sound statistical practice (e.g. as described in Dave Giles' blog). How to interpret the results comes in second. Fortunately, if you assume (and preferably validate the assumption by testing) that the logs of stock prices are cointegrated, you can use VECM where the dependent variables will be the log-returns.
Just to be sure about it: Is that more or less correct? <...> "Stock returns Granger cause spread changes"; this is the interpretation I had in mind (well, after checking whether there is Granger causality of course). The data to be used are stock prices and spreads.
I think your interpretation is fine.