Cramming at the end of a semester will not help you at all. It has to be slow and incremental. Baby steps and it has to be consistent. If you keep this up for years eventually you get to a point where it seems that you are learning so much faster than everybody else but it really is just that you have been at it for years already and learning new information using the context of all the previous information makes it a lot easy to learn.
(I've met some of the people you describe also.)
I was watching someone take one of these online IQ tests and they were doing a question where you had to add up a bunch of numbers and tell if the result was even or odd. The person reached for a calculator. I laughed and said what the answer was. That person might have thought I was some kind of math genius. In reality, as a software developer I've learned a lot of interesting shortcuts for these kinds of things. I know that if I represent the numbers as base 2 that there is only one bit that has an odd value. I know that even numbers don't have this bit set and can thus be ignored (0 + n = n = id function). I also know that adding an even number of odd numbers gives and even number and an odd number of odds gives an odd. So given this knowledge I don't need to add up anything, just count the odd numbers. Which I can do quite quickly. The thing that made me so much more efficient than the other person was knowing a trick.
Is this the nature of "talent"? If Joe Plumber plays golf for 10k hours and Tiger Woods 10k, could the reason Tiger is so much better be that he knows these "tricks"? He knows how to make his 10k hours be more effective?
>You've never meet--or even heard of--those people?
I have (in the context of programming). The thing that always struck me about them was that they seemed to be working far too hard.