DoF does only work when CameraViewport = Screen/WindowResolution.
It's not bug! Viewport of the camera must have a size — width=GraphicsWidth() and height=GraphicsHeight() and use RenderPostprocess function after RenderWorld only for DOF postprocess fx. Whole two restrictions for correct work. This restrictions is connected with DirectX7, sorry.
If you want splitscreen - use CopyRectStretch function for resize.
When I use a resoultion lower than 800x600, I get strange artifacts like if post process layers are bigger than screen.
You can use other quality for Fx, which use blur.
quality% - blurring quality (values 0-3)
0 and 1 - fast method (0 - low quality, 1 - high quality) with artifacts on NVidia videocards
2 and 3 - slow method without any artifacts (2 - low quality, 3 - high quality)
edit: Other postprocess fx can't show artifacts.