Running Duemilanove at 12MHz - effect on delay() function?

Almost. The core is designed to work correctly at 1, 2, 4, 8, or 16 MHz. At 12 MHz there is a small error (probably about 1%). The same is true for 20 MHz.