I just implemented this on X11 but I'm missing windows/mac implementations. I believe I can cook something up for windows without too much trouble but I would love some help with the mac implementation (OpenTK is currently using Carbon).

The API is pretty simple:

gameWindow.CursorVisible = true/false;

A patch against trunk is best but even example code is fine (the changes are pretty simple and self-contained here).

Edit: initial implementation for X11 is committed to trunk, it's still buggy though. You can test the code using Examples->OpenTK->GameWindow States.

The final piece of the puzzle is whether we should confine the pointer inside the window whenever it becomes invisible. We can either provide a different API for this or we do this automatically. Is there any reason why one might like to have an invisible pointer that is *not* confined to the window?

Yea I prefer the ShowCursor and HideCursor approach (how .net does it) compared to the single Property.... but two ways this can be done:
Either stub out APIs for all the platforms just to limit the mouse to a set bounds...or implement the rawhardware backend and not worry about it (if we have a raw hardware handle we really don't care where the cursor is just that its invisible).