Most efficient way to program bare 328 chips

I just use a USBASP, and made boards to accomodate ATMega328P, ATtiny85 and ATtiny84 chips. The boards don't need to be etched, and can easily be knocked up on veroboard or similar prototyping boards.
Only a little messing around to make the boards, USBASP programmers are cheap, and then you're set up forever with no messing around, and no need for a bootloader. (You still do the "Burn Bootloader" step, though, to set the fuses.)
With the right cores installed, you can use internal or external oscillators and set most fuses to suit the project.

This pic shows the ATMmega328P and ATtiny85 programming boards and the USBASP programmer. (I hadn't made the ATtiny84 board yet when it was taken.):-

ATtiny85  328P Prog Boards.JPG