glGetError may affect your performance (I haven't noticed a significant impact myself, but many people including the authors of OpenGL Insights tell you such) and may at the same time not deliver good enough information to realize immediately what's wrong when doing the "typical" sporadic check.
For that reason, I'm using a debug context during development. You can turn it off by flipping a switch, and it's much more straightforward too (errors are synchronously reported to your callback function as they occur, not when you sporadically poll at some random time later). For a release build, it's California or Bust.
Either your code is correct (correct enough as to not produce errors with a debug context), then it must work, assuming the driver isn't buggy. On the other hand, if the driver is buggy, it probably won't work, but there's nothing you can do about it. You're fighting windmills, so not much point in doing a lot of error checking in release build.
I'm not sure if that approach is the best possible, but it's what I personally think is reasonable.