I just discovered that I knew the answer to this, because I was accidentally running some 5v/16MHz Pro Mini boards at 3.3v without issue.
Yes, you can run one feeding it 3.3v, but you need to program it as a 5v/16MHz board to get the clock speeds right. Also, all your TTL levels (outputs) will be 3.3v, not 5v. Additionally, at least in my experience, the processor will run at 16MHz and not 12MHz with 3.3v.
I had some generic Pro Mini boards that didn't mark their voltage at all, so I tried programming (and running) them using my FTDI at 3.3v using the 3.3v/8mHz option in the Arduino IDE. I was able to upload programs just fine, but the clock was clearly wrong, as the "Blink" program ran about 2x as fast. That told me that it was running faster than 8MHz .
So I tried again this time telling the IDE it was a 5v/16MHz chip, and everything ran fine, despite the fact that I was feeding it 3.3v. I even saw that pin 13 was cycling from 0v up to 3.3v - exactly what I was feeding it. So for a while I just thought they were 3.3v Pro Minis.
But then thinking about it, I realized that having to tell it to run at 16MHz to get the clock right meant it really was a 16MHz chip - which I didn't think was available with the 3.3v model.
So on a whim (and since I have a ton of these little boards), I changed my FTDI to 5V, and was able to run and program the board just fine.
So from that, I conclude that yes, you can run them at 3.3v, but your TTL levels will be just 3.3v.