For reference, look at the 'add page link' script. It creates a link from one page, to a second page. The 'remove page link' function works the same but in reverse, you have to tell it what page it's going from and what page the link goes to, so that it can remove the correct link, and not just any random link on the from page.
EDIT: feel free to skip down to the big lined off edit section as I wrote this first part from more of a building everything via page scripts and not the normal game book format due to my own lack of familiarity with it.
You have the right idea however you're doing more in the scripting rather than running off the text processor, which really is a matter of preference and what is easier for you to read.
I'll see if I can give you a good example of both methods. So first thing first, a useful trick if you want to understand more of the coding behind the gui scripts, as well as should help you understand what you're looking at when people post code, and to more easily copy some code into your game. So in your screenshot, down where you actually have your scripts and such, the tab to the left says "Script:". Now if you look to the right of that you have a bunch of buttons. The one that I want to point out here is the "code view", its to the right of the clipboard and looks like a single page with text on it. What this does is switches the gui view of your scripts for the actual text based code, and clicking it again will switch back (if the code is typed correctly, errors in the code will cause it to go red instead of converting back to the gui mode).
For example, the code view of what you have there in that image comes out to this (minus page names)
if (HasSeenPage(Page1)) {
RemovePageLink (Page1, )
}
and again clicking the code view button to turn it off should go back to exactly what you saw before.
Now game books tend to be more limited and the type of scripting you can actively use to manipulate them, which is why I was recommending using the build in text functions. What you have there will certainly work, as it will take the link out of the page. What I was saying would be to have the text itself look to see what it should be showing instead of actually moving the links around. ie:
msg ("blah blah blah, page 1 and whatnot stuff is happening, what will you do?")
msg ("") //this is a blank line
msg ("[option1] [option2] {if object.attribute:[option3]}")
They accomplish basically the same thing, an option 3 that is not always there, the method depends on personal preference and organization.
Also an alternative that may be a bit more messy but actually simpler, would be to duplicate the start page onto page 2, so you have "start page" and "start page 2" or whatever you want to call them, and simply have "start page 2" not have option 3. This would basically be the method you would have to apply to a physical game book since you can't really re-write a physical book. Although I personally think that method would likely get messy very quickly if it's a situation that comes up more than a very few times.
=============================================================================================EDIT: okay so part of this is my severe lack of familiarity with the game book option, as I'm the kind of guy that would just make a fake gamebook in text adventure mode if I was going to make one so I honestly haven't looked at them much, so sorry for any added confusion caused by this. Turns out I was thinking this was a bit more in depth than it is with build in features.
So, What you'll want is for a page where something important happens to have the page type set from "text" to "script + text". What this will do is allow you to have some code run when the player sees this page. In this case the main thing we want is to set some flags to say what text will and will not show up.
For your starting page, we will need a two part script, first we need to go down to scripts, and select "first time", this way we only turn the flag on once, otherwise it will just turn back on every time we come to this page. Then we need to set a flag to on, so under the add scripts, variables, set flag on. Leave the drop down at its default of 'flag name', and enter a name of your choice for the flag, so in this case I'm calling it "ShowOption3". The other option is to have a page before the "start page" that turns the flag on, then returning to "start page" will not turn it back on every time. Now in the Description section of the page you have some buttons on the right side for doing special text functions which are going to help with the next part.
So since we want the page options to be under our control without going through a bunch of different scripts, I would remove all of the page links at the bottom, instead we are going to use the 'Page' button on the right hand side to make our own links within the text.
So when you click the 'Page' button, it will ask you for the text for the link, and what page it will go to. This works the same as an actual page link, however its built right into the description of the page. You can even turn words anywhere in the description into such links. Anyways the important thing here is that we can now control our links without having to setup a bunch of functions and such. This is where the {if} for the text processor comes in. I'm going to use {if ShowOption3:{page:Page4:Choose options 3}}, instead of just a normal page link, so that this specific page link will only be seen when I want it to. The reason we don't just leave the other links as normal is that they will be below the description so we end up with option 1 and 2 being below 3, plus you can do more fancy stuff like building the links into the actual description and such.
Anyways, to make 'option3' dissappear we have the page it leads to set to 'script + text', and simply run the script 'set flag off' for the flag "ShowOption3" now when we return to the starting page, option 3 is now turned off.