VHDL: Are if-else and case statements supposed to synthesize the same hardware?
No: if-else is sequential; case is concurrent. A single if followed by an else will be equivalent to a two input multiplexer. An if followed by if else statements is equivalent to a series of two input multiplexers like this:

This is because the order you check the conditions of the if-else matters, i.e. you have priority.

A case statement, on the other hand is concurrent. Everything happens at the same time.