RAAAAH, sometimes problems just vanish, if you WRITE about them.
Found the error. My frustum function was wrong. Its funny that I had something 3D on the screen instead of garbage. This one is correct:
void Matrix4x4::frustum(float left, float right, float bottom, float top, float near, float...