There are many reasons a designer/programmer would want to draw the crosshair on the exact center of screen, or a little lower. A hybrid system may even be implemented, taking advantage of the properties of these two systems in a game fich of different weapons, vehicles, interactive spots, and so on.
Drawing the crosshair centered or lowered can depend on some design choices:
- Centered crosshair: typical style, almost every old FPS game and most modern ones have a centered crosshair. This way the visual range is balanced both horizontally and vertically. This way, when shooting we know the bullet is moving where we are looking at, because its starting position is the same as the camera (our "eyes" in the 3D world). This is a typical choice, as it comes natural for a generic user to focus on the center of the screen when interacting with a computer, and video game players are no exception. Also, if your game has HUD elements on different sides or corners of the screen, having a centered crosshair will let the player keep them under control without extra efforts for their eyes.
- Lowered crosshair: drawing the crosshair slightly below to the center of the screen requires the programmer to mind that fired bullets aren't moving straight forward anymore respect to the camera orientation, instead their trajectory is sloped of a certain angle downwards. Having a crosshair below the screen center, means a player has to look a little up in order to still aim in front of him. Also, the visual range changes, as what lies above the horizon line gets actually prioritized than what lies below such line, like weapons, objects, or even your own legs. When it comes to user interface, if you designed the game to have HUD elements on the bottom only, they will be easier to read without losing focus on the crosshair.
- Hybrid crosshair: some weapons will sport a centered crosshair, others will have a lowered crosshair. An example is aiming with a rifle vs. aiming from a mounted machine gun. Your choice.
In the Halo series, Halo PC/CE has always a centered crosshair, whilst the other titles have a lowered crosshair for weapons, which smoothly moves to the center of the screen when interacting with vehicles or mounted turrets. You can see similar differences in other games, such as Doom 3, Team Fortress 2, Crysis 3, the Battlefield series, the Call of Duty series, and so on.
Here, in (1) there's the classic centered crosshair: when looking straight forward, the player's pitch angle (whether he's looking upwards/downwards) is equal to 0 degrees, as one would expect. Then, in (2) we have a lowered crosshair. Now, if the player wants to aim again in front of him, he has to look a little up just like in figure (3).
But there's another more important reason this crosshair stuff is a thing, and it's related to the question you linked. One may ask:
How can I shoot bullets out from the camera, yet pretending they come from the gun barrel?
The player shoots at what he's looking at. That's why most weapons spawn bullets at the camera position instead of the tip of the gun. Yet, we must pretend bullets are still fired from the weapon.
We can achieve this by using a lowered crosshair, in combination with good character animations. A generic FPS biped consists of a character and a weapon. Look at the following image (Halo helps again):
Red is camera, blue is weapon. In figure (1), we have a centered crosshair and a horizontal rifle, so we should adjust weapon and arms orientation to reflect the direction of fired bullets. Alternatively, we can move the weapon closer to the head, simulating the act of aiming to reduce the distance between starting position of bullets and gun barrel.
On the other hand, in figure (2) the camera sports a lowered crosshair. The resulting effect is that the fired bullet will move so close to the gun barrel that they seem coming from there! We can do even better: draw the bullet only after it moves over the gun barrel, as the fire coming out from the gun will complete the whole effect. When doing this, it's good animating arms and head accordingly to the current direction the camera is looking at. Also, reducing the angle difference between bullets direction and weapon direction on the model, will give you a better result as the bullet is actually moving on a straight line trajectory. The closer the camera (the model head) to the weapon held, the better the final result.