You're confusing the Oscillator calibration word with the band gap.
The band gap is used to set the reference voltage used by the Brown-out-detect and Power-on-reset circuits. It is held in the configuration word as two bits and needs to be read out before you erase the device. See 12F675 datasheet page 52
The oscillator calibration word is held at the top of program memory and again needs to be read out before the device is erased or you lose it.
It will run at 4Mhz +/- 1% if you run it at the same temperatue and voltage that it was calibrated at. I seem to recall reading somewhere that Microchip calibrate at 3.5volts / 25degC
See Figure 13-15 and 13-16 on page 112 of the 12F675 datasheet for a graphs of frequency variation vs supply voltage and temperature.
To set the OSCCAL register just use the code below and off you go.
Code:
bsf STATUS, RP0 ;Bank 1
call 3FFh ;Get the cal value
movwf OSCCAL ;Calibrate
bcf STATUS, RP0 ;Bank 0
Again, read the data sheet, page 16, 2.2.2.7 OSSCAL regsister.
The register uses the 6 high order bits to adjust the oscillator frequency with 111111xx being highest frequency it can adjust to and 000000xx the lowest. 100000xx is the centre of adjustment but not neccesarily the point at which the oscillator will run at 4Mhz.
There is no specifc relationship between the value and the frequency - you can't say an increment of 1 will increase the freqency by 15Hz if that's what you mean. Even if you find some relationship between the OSCCAL values and clock frequency for a particular device it may not hold for devices from another batch.