DFT is basically calculating bandstructure at 0K, so the Fermi level should be at the valence band maxima
That is not correct. At 0 K the Fermi level can be placed anywhere in the band gap, if you use the definition that it should separate unoccupied and occupied states (although that definition is really for metals, at 0 K). A more appropriate definition for finite temperature is however to place the Fermi level such that the Fermi function integrates to the total number of electrons. Provided you do this carefully enough (which is hard!) the natural place for the Fermi level is the middle of the gap, in an undoped semiconductor.
Granted, for 0 K we can place it anywhere - incl. right above the VBM, but you don't actually do DFT calculations at 0 K numerically because the Fermi function is a step function and the calculation becomes very hard to converge, and thus to be numerically consistent, the Fermi level computed should match the electron temperature used in the calculation.
The question of where to put the energy zero-level in a band structure plot is however quite a different question. Some codes/article authors choose the VBM for this, we choose the Fermi level.