Why is division by 4096 not the same as ">>12"?

I recently went down the same path on a particular DSP. It appears division rounds, but shift truncates. Although I had colleagues who assured me that division and shift were identical, this is clearly not the case.

It turns out that right-shift on signed integers is actually "implementation defined" behaviour, as mentioned in this thread fast divide of signed number using SHIFT ?