The DiracDeta function is really not a function, it is a distribution. DiracDelta[0] does not have a value. It is defined by its effect under integration, which Mathematica performs correctly:
Integrate[f[x] DiracDelta[x - a], {x, -Infinity, Infinity},
Assumptions -> a \[Element] Reals]
(* f[a] *)