So here is my current answer to this.
I couldn't find a way to make the backbuffer accessible. Instead, I created a render target of the same dimensions as the screen, made it available to CAL as shown in the Programming Guide, executed my kernel, copied it to the backbuffer, and flipped it to the screen using Present().
Certainly not the most efficient way, but there are a number of restrictions hard to come by.
In order to share a D3D9 surface with a CAL-kernel, it apparently needs to have the format D3DFMT_A32B32G32R32F. The CAL-kernel uses this resource then as if it was CAL_FORMAT_FLOAT32_4.
Pixel values need to be in the range 0.0 ... 1.0. They are converted to 8-bit unsigned ints automatically during the copy orperation via StretchRect().
If somebody knows a better way please post.