1. Stock: A normal function provided by an include file. If unused, it won't be compiled.
Void: Basicly a function with no returns needed.
2. A defined age 16 can't be changed as you said wich is true, also a defined value takes no memory in the processor, where the integer variable can be modifyed under any desired circumstances tho it takes up a little bytes to store values, the modify of the integer variable can be used to store data, like client indexes and what else, so yes big point in using the integer variable, but it all depends on what your trying to do.
3. What do you want to know about bitflags, like what are you trying to accomplish?
4. Gamedata is typically changed by the game itself, for us to modify some values we need this gamedata, there should be plenty of information about gamedata laying around, just search.
If i'm totally wrong about anything said above feel free to correct me.