I've never used freeglut before but i did do a little work w/ glut waaaaay back in the day using the GLUT library from OpenGL.
You may know this already.
The jump to a "major point release" by convention typically signifies breaking API changes.
Anyway...I was very curious about your issue and freeglut; so i looked at the source code.
Seems like there were significant changes inside of the glutFullScreen() function in v3.0.0
Documentation for the v2.8.1 version is non-existent but v3.0.0 is located here:
The v3.0.0 docs for glutFullScreen() and its derivatives do say this:
"Calls to these functions are ignored for gamemode and child windows."
Also in the "16.3 glutGameModeGet" section of the docs you can query the main window w/ a bunch of state variables via glutGet(...).
I would check to make sure your window is NOT in "gamemode"
you may have simply found a bug w/ the library (which is not unusual for "major point releases")
Also; it may be best to report your issue to the freeglut bugs mailing list:
They may be best at helping you out.
hope this helps & good luck!
if you're curious at the source code changes - checkout the following files for differences:
v.3.0.0 --> fg_window.c
v.2.8.1 --> freeglut_window.c