So it turns out that it's way too easy to do a "find -name \*.c -delete" when you intended to do a "find -name \*.o -delete".
Well, ok, there's no reason it should be easy to make that particular mistake, except that I'm a moron.
In related news, my "when do I check it in to version control" threshold has now officially been lowered to "there is any chance at all I might want this stuff later", since I clearly cannot be trusted to not accidentally delete several hours of work at any given time.