How to interpolate vertices when clipping?
Points in front of the camera have $w &gt; 0$ strictly, by definition. I would say that if clipping is giving you points with $w = 0$ then something is going wrong.
Consider the left/right/top/bottom clip planes. There is no way that a triangle can span from part of the visible frustum, to the $w = 0$ camera plane or behind it, without also crossing outside one of the frustum side planes—or else the near plane, which lies at some positive distance $w_\text{near} &gt; 0$.
You mentioned skyboxes and setting $z = w$ in the vertex shader output. Such geometry must cross the frustum side planes before it can get to the near plane. (How could part of a skybox get close enough to the camera to be clipped by the near plane only?) If you are correctly clipping it against all of the frustum planes, you must end up with $w &gt; 0$ in the final vertex.