At -2.5V in, the voltage at pin 3 should indeed be 0V, at +2.5V in, it will be 2.5 + (2.5/3) = 3.3V in. As the op amp is a follower, I would expect the same out. The circuit is doing what it should. You could use a rail to rail opamp, but note that you cannot get the input to +5V with this method of level shifting. If you really want to get the largest swing, a better way might be to generate an artificial mid-rail and AC couple the input signal. You could also use a summing amp, and sum in a DC offset, if you don't want to AC couple.
Also note with your circuit that you try to bring the input very close to 0V. Due to resistor tolerances, you might well be clipping the input slightly. Whether this is a problem depends really on the application.
Your circuit is non-inverting, input and output have the same phase.
If you really want to get the largest swing, another way might be to generate an artificial mid-rail and sum the input with a DC offset. Schema below:
simulate this circuit – Schematic created using CircuitLab
The circuit is now inverting, and has lower input impedance. However you are still DC coupled, and you use the full voltage. You can use any opamp that gives rail to rail swing at 5V. You also have a bit more possibility to adjust gain, using the feedback resistor. C1/R2 are sized to provide a stable mid rail at 1Hz.