You've heard this phrase before: "it depends."
If you've been commissioned/hired by a client to code a pre-designed game according to their GDD, then you could negotiate a feature with the client.
If you've written this GDD for yourself or for your team (and you are the boss), then hang the GDD - make a fun game, and the GDD matters not a whit.
Yeah, obviously different circumstances offer different flexibility.
This is the 2nd serious project I worked on, and the first one I started with just a fun idea. I ended up achieving most of that, but without an actual game or finished task in mind, I had no idea where to go to next. I was also working with someone, and we had some different ideas on how to proceed. The combination of lack of a goal and the differing ideas ended up with me stopping work on the project because I lost interest.
So, this time, working alone, I decided to set myself more of a goal... the GDD was suppose to summarize my goal so I could keep track of what I'm working on. Like I said, I'm wary of feature creep, especially when working alone. I write some of this code, and realize how easy some feature might be (say a jetpack) to program, but then realize that writing that jetpack in would require me to setup not just the easy-ish physics, but a whole sort of inventory management to decide whether the player has the jetpack or not, because the game I had in mind does NOT focus on a jetpack feature at all...
Anyway, just as that paragraph got out of hand, my ideas kind of do the same, so I'm hoping to stick to a fairly constant document that lists the major goals.