I was mulling it over last night and I decided I haven't explained this terribly well.
So I thought I'd have another go...
From experience and talking to people it appears that indeed the options are hard coded - option 0
is advanced start, option 1 is no city razing etc. They can't be changed, however the
checkboxes can be placed anywhere the first put last the last placed first, whatever you want to do.
The trick then is in marrying the correct checkbox with the correct option and this is what the code does it's an error checker. So if as in this scenario an extra checkbox is at the top the checkboxes below now point to the next option along. ie select the advanced start checkbox and get instead the no city razing option.
This statement (if CyGame().isOption(1): ) checks to see if the second option "no city razing" is true.
Because the checkboxes are out by one the gamer actually wanted "advanced start"
So this line ( CyGame().setOption(1 , false) ) turns the option "no city razing" off
and this ( CyGame().setOption(0 , true) ) turns the correct option "advanced start" on.
I mention this out of interest sake as I've only tested it with BTS and will it work with Civ 5? Don't know...