Lots of UI elements show up on Stack Exchange even if they're not currently available to you. For the reasons discussed in this question on UX.SE, consistency and discoverability are more important.
First, answers are consistent. If you can see deleted posts you see the voting buttons there too, but you can't use them. You can't vote if you're suspended, but you see them. You can't vote if you've exceeded your daily limit, but you see them. If things come and go based on your current abilities, that's likely to confuse people. (It's also rather more expensive -- more server calls.) The error message you get if you try to do something you can't currently do is less alarming than the "wait, where are the buttons?!" factor.
(I know of one case where this rule is violated with voting buttons: posts with historical locks don't show the buttons. It throws me off just a bit every time I see it, but this is a rare case that's supposed to look like a weird abomination, says Shog9.)
Second, you want people to be able to see what's possible (even if not for them, right now). And the error messages can provide guidance (like "vote limit exceeded; vote again in 2hours"). For more about this see the UX post.