Experimenting with amdgpu (proprietary drivers tend to break on my machine), I've decided to give SilentMiner a try.
Turns out, it's actually churning out solutions quite happily - not that fast (60 Sol/s vs 250 Sol/s which is to be expected of an R9 280), but definitely faster than the optimized CPU miner on this workstation.
I think there is some rationale to start optimizing - both the LLVM and the kernels. Has it been attempted? Any useful pointers?