I consistently come across questions wherein the top answer has, say, 1k+ upvotes. These are usually for basic questions that many, many people need the answer to. What this means is that over time the first person to answer this basic question has accrued potentially 10,000k reputation points and probably some badges besides.
And yet that is not an accurate reflection of their contribution: they are not necessarily providing a deep, articulate answer to subtle or complex questions, but rather simply managed to answer early and have that simplistic answer be commonly needed.
I'd propose that reputation from a particular source not be capped, but show diminishing returns over time. It makes sense that the first n upvotes give x reputation. But the next n should give some (significantly) smaller number, and the next n even less. This way contributors who answer many questions well will have the highest reputation, and those who answered a few commonly needed questions have a reputation that accurately reflects that.