But would not the code to change the clock to divide by 4 be running at 16Mhz at the start ?
Yes it would. However, the device in question is a battery operated device which runs on 2 AA cells (at 3.1V) at bootup. The code uses CLKPR to divide by 4 and from then on the device always runs at 4MHz as the battery begins to drain. My question was more about the internal oscillator hardware, to be precise, can it run off a 16Mhz xtal and generate the 4MHz for MCU at 2.7V?
As I recall dont you have to set the fuse to divide the clock by 8 (2Mhz) and then run the code to change the clock divisor ?
Yes, alternatively, CLKPR can be set to do the clock division. My app does this.