Why does a user start off with 1 rep, and not 0? Is there a real reason for this? Or was it just decided because it wouldn't make much difference if it was 0 instead?
From day one, you can do a lot on Stack Exchange without any prior experience/reputation at all. Yet if new users see that they can gain additional abilities by increasing their "reputation", starting with zero (0) would seem to suggest they are starting out with no reputation/abilities at all.
Everyone starts with one (1) reputation. It's mostly perception and first impression, but saying you have reputation is better than saying you have none at all.
The user starts with 1 in order to have the privilege to post the questions or answers. Theoretically zero would mean that you don't have reputation at all then what would be the point of creating the account if you can't do anything. So it doesn't go lower that 1, otherwise one down-vote could take away your ability to post anything.
I believe it starts with 1 reputation for identification reasons (anonymous or non-identified users will have a 0 reputation). Simply to make a difference between new members and simple visitors, that need to log in to post a question or leave an answer etc. (This would be a logical explanation for me)