Isn't CL a perfectly reasonable thing to interface with Vulcan? Given its power, and things like compile macros, it could be possible to generate versions of some functions (array-oriented ones, for example) that would run on the GPU using SPIR. Other interfaces AFAIK don't support passing code like this (CUDA likes pre-compiled code (can it receive source texts?), OpenCL AFAIK accepts source code but you have to generate text and the driver has to compile it again.).
(Note: I'm personally interested in this.)