FreeGLUT is designed to wrap around OpenGL's native API, so I'm going to say that building a game engine around FreeGLUT is a safe-enough design choice -- assuming you know how to use FreeGLUT, that is.

SDL itself does not support 3D, but it does support OpenGL. I would suggest you use a multimedia library like SDL or SFML to do your event handling, audio, basic graphics (you could even use Win32 API if you are developing for windows onl.) alot of the libraries support OpoenGL, but I think OpenGL is the best way to go for your graphics part of your engine.

It seams to me like GLFW is one of the most popular choices among experts. It's just window and controls.

For something as simple as windowing and getting user input, it's not like any of your choices are going to make anything very much more difficult for you than the other, except in terms of portability.

But yeah, I'm not sure it matters that much. For example, I'm using SFML in my fairly large program. It would take me probably 10 or 15 minutes to switch over to GLFW. But I'm not using it for sound or networking. I use OpenAL for sound directly.

SDL has audio, but you're much better off using OpenAL anyways. SFML supports sound also, but it uses OpenAL, and I'm not sure how limited it might be compared to using it directly.

Whatever you use for these purposes, audio, input, etc, don't just start scattering third party library function calls all over the place. wrap them in your own methods/functions, so that when you have to replace a library with another library, the switch take a minimal amount of effort.

SDL has more portability, GLFW has better everything else. :D
Seriously though, GLFW doesn't get used very often in games simply because of lack of familiarity and portability. It supports the three big platforms but doesn't like consoles or other platforms. That and the license is much more liberal.

I cannot stand too look at SDL documentation. Reading, "PLEASE ENTER EXAMPLE HERE" is the last thing I wanna see when I'm confused about something in their API.

you can use allegro
allegro support's keyboard input, mouse ruteens, OpenGL, DirectX, Event Handling, reading from sound files, play them, and write to them, Native Dialog like MessageBoxes, Reading from archived files, threading, and many features that i dont know
i'm just use it for my game engine that i'm writing and it's funny
freeglut isn't bad but i not recommend it!