One thing that comes to mind is that the Camera task (at least on the C++ side) doesn't clean up nicely when its destructor is called. This is only really an issue when running out of RAM, since a reset is required to run out of flash anyways. We hit this frequently enough during debug that we had a special compiler flag to disable the camera task when we weren't using it. If we were to try to debug in RAM while the camera task was running, we'd get an error (sorry I don't remember the specific one) about something already being defined (I believe it was in the video server).
Another issue that we saw was with the DPad class. It was
reported here, but I'll make note of it here for reference.
In general though, WPILib is a great foundation and we use it extensively. I will post with more ideas at another time.