I’m sure this has something to do with position:absolute and that overriding the css display property to block.
As you can see in the image below (and this fiddle) the div on the left (absolute) doesn’t vertically center it’s text but the one on the right does (it’s relative). If seen in chrome debugger, the former has display:block and the latter display:table-cell.

Question: I know positioning something absolutely ‘removes it from the flow of the document’ but does that imply that it will NOT override display and everything will be defaulted to it’s default display (i.e. block for divs, inline for spans etc.) Why? Is there a specific reason for this behavior?
This is required by the spec:
In the table shown in that section of the spec, any of the table-related values for ‘display’ computes to ‘block’ instead.
As you say, absolutely positioning something will remove it from normal flow; as such, it no longer has a table to display in and therefore it no longer makes sense to display it as a table cell. In order for an element to be displayed as a table cell, it needs the proper container, and it would seem that these can only be generated implicitly in normal flow.