Indeed. And just to reiterate so you get the point.
NO, there is no such fpga or cpld. There, we said it twice, so must be doubleplus true now.
You can indeed use an open drain. I've done this with both coolrunner II and spartan-3e, but you do have to RTFM and make sure that the pullup resistor you use is big enough to limit the pad voltage to a safe limit. Short version is: the clamp diodes will do the work for you. But be advised that this will limit you to fairly low speeds. If you want both 12 volt outputs (and inputs?) and high speed then you will have to use some sort of logic level shifter. For high speed 12 Volt outputs a simple push-pull stage with discrete transistors should do the trick. If you want both inputs and outputs at high speed inputs you really should use a level shifter IMO.
Edit: a quick google around found
this list for some examples. If anyone else knows more please add. Always on the lookout for cheaper level shifting solutions. Mostly between 3.3 Volt and lower voltages really...