All very true, but perhaps not as significant as it seems. While any given day you may get up to 1 XP per vote while others you get 0, in order to get enough votes to go up a level, you need more then one days worth of voting. As such, over a large number of votes, it will most likely average about 1/4 XP per vote. Because of the randomness factor there will always be local variation and noise, but over a large number of votes, it will average out.
BTW, nice program, and thanks for bringing Perl into our discussion.
...you might be eaten by a grue...