Arduino 20MHz, Delay() accuracy

@Coding Badly
Gone to bed with
#define FRACT_INC ((MICROSECONDS_PER_TIMER0_OVERFLOW % 1000) >> 3)
part and had sleepless night!

Agree that #define FRACT_INC ((MICROSECONDS_PER_TIMER0_OVERFLOW % 1000) >> 3) will result in integer for 16Mhz (or multiple of 8. ) and a fraction for 20Mhz, but is it possible to tweak this code so it can work with other frequencies too?
i.e. If MCU is running at 20MHz it will take (1/20) micro Second for one cycle(or instruction), so if we just use 20 instructions like "nop" which takes one cycle to complete then we can create 1 micro Second delay.
Similarly;
16 instructions to get 1 micro Second delay for 16MHz
18 instructions to get 1 micro Second delay for 18MHz
19 instructions to get 1 micro Second delay for 19MHz and so on..

Or am I missing something here?