TXD/RXD aren't used as part of the 6-pin header: it's +, -, MISO, MOSI, SCK, RESET.
Once you've burned the bootloader using the 6-pin header, of course, you can switch to using USB or serial to program from the Arduino environment. And yes, if you're using serial to send down a new version of the code once every five minutes during development and you're also using that same serial port in your application, then moving jumpers around to redirect the serial could get old fast. I'm thinking you only need to do this on RXD -- if TXD goes out from your board to several places, I don't see that causing any problems.
Capacitor polarity: if I fear I've mounted one wrong, I flip the board: pin 1 (i.e. positive) is a square pad.
Mounting holes: good point!
Incidentally, the correct number of mounting points is three, because three points define a plane. If your enclosure flexes, and you have more than three screws holding your board down, then your board has to flex with it. If you have exactly three, then the board remains flat (though not necessarily level) when the enclosure flexes.
I agree with what you say about optoisolators. I'm using a 4N35, but you must bias the base of the optotransistor by tying it to ground with a 10kOhm resistor or so: without this the slew rate (and therefore the bit rate) is appalling.