But if the post is garbage
A post with little weight on it doesn't make it garbage.
is the only voter that he will have wasted his vote when the post hasn't received any votes yet
The calculation is based on voting weight , it doesn't calculate how many vote were on a post, it calculates the weight.
Both discourage self-voting in the same way: they make sure that a post needs a little "oomph" to get off the ground, so to speak.
Someone who want to upvote himself is going to upvote regardless of any oomph. This feature doesn't discourage selfvoting at all, it actually encourages people to buy more steem power to self vote themselves.