If someone provides a detailed and deeply insightful technical answer to a tough question he/she may get rewarded with 5 or 10 up votes. But if someone answers a question like, "Which is better, C# or Java" they will hit the daily limit. Is there anything we can do to fix this?
Because more people are interested in the general questions, and thus attracting more people. And more people visiting the question equals more people upvoting the question.
It's hard to do anything about it, because of this fact.
It's the Bikeshed effect, partly. Few people are competent to comment on a deeply insightful answer to a tough technical question, and in fact relatively few people are going to look at it. A whole lot of people can answer soft questions, and will likely upvote, and feel competent to upvote the answers.
There are many many ways in which StackOverflow is "inefficient". Questions are rewarded by the time of day in which they're asked, how they're asked (my highest scoring question was closed as subjective and argumentative :), which technologies they ask about (C# vs. S-plus, for instance), etc. Highly technical questions and specific questions are just not as sexy.
IMO, the question is not whether SO rep is working. The question is: is SO rep working somehow to produce a great technical site. The answer is that, in spite of hundreds of thousands (millions) of idiotic tendencies, bad answers, stupid questions, and bad voting, on the hole (whole?) SO is a great place to ask programming questions and get answers.
Back to your question: what can be done about this? You could start making all kinds of strange hierarchies (highly technical question: points doubled; rare technology stack: bonus points) but overly engineered social systems usually backfire and end up with people doing all kinds of weird stuff just to get more rep. Less rules=less gaming... I think.
This isn't necessarily true.
Most of the time, if a question is really broad or has far-reaching implications, it's going to end up as a Community Wiki post, which doesn't generate reputation. There are exceptions, of course. But if someone asks a really good question, they definitely should be rewarded for adding a significant amount of value to the community -- as it should be.
That being said, there's nothing stopping people from upvoting a post, even if it's a specific technical question that might be classed as "difficult" -- it's just that perhaps that kind of question wouldn't get the same exposure, or have people be familiar enough with the subject to even say if it's a good question or not. In that sense, it is kind of backwards, but at the same time, if you're asking that specific of a question, it's likely to be an issue localized to only a handful of people and of lesser benefit to the community.
If you think of reputation as a measure of how much value someone has added to the community, then I think your problem will be resolved.