This changed for me in college. I hope it got better for you as well.
Edit: I almost failed out of engineering during my first year because I hadn't properly developed the skills and habits necessary for really putting effort into challenging school work. I do joke a little bit about the 51% I got in "intro to statics": since it's a 51% and not a 50%, I know that I earned that 51 and it wasn't a mercy pass :)
As an example, my EE degree doesn't have any out of the ordinary stuff in it. We had a fair bit of latitude in choosing courses, so I went towards DSP and FPGAs, just because I found that stuff more interesting (and easier to be engaged in), compared to say power systems.
My CMPT degree, though, I once again found myself in a position where a lot of it was too easy (A kid who has been hacking on C and assembler for 6 or 8 years is going to be miles ahead of the other first years who are writing code for the first time). So I went ahead and loaded my schedule up with more challenging courses (elective advanced algorithms, elective compilers, etc).
The only flaw with that plan was that most of the harder courses were dual listed as undergrad/grad courses, so when I went back for grad school there were a bunch of courses I couldn't take, because I'd already taken them in undergrad. It all turned out well though.
Anyway, I get my first assignment back, 10/10. Awesome, just like I expected. Get my second assignment back, 9/10. What? Oh, he didn't feel like I had commented my code very well. Ok. I'll do better next time. Next assignment, 8/10. I had used "x" as a variable name, and another pickier detail. Next assignment, 7/10. Even pickier details; things like UI spacing. The worst was that my peers, who struggled a lot more and their code was often pretty bad, they were doing better than I was in the class!
But I kept at it and kept improving, getting better and better at nailing down every possible detail. Managed to get marks back around the 8/10 to 9/10 range, but never 10/10. Nearing the end of the course, I started looking back at my grades and came to a brutal realization: "I'm significantly better at this than most of the people in the course, but my marks don't reflect that!"
I went and talked to him and raised my concerns. He gets this big grin on his face and says "Oh, I've been recording those as 100%s the whole time. I just wanted to keep challenging you, within the scope of what the curriculum gives me. I really wish I could have given you better projects, but that gets pretty complicated pretty quickly. You're doing fine, and I think you've improved a lot since the start of the course."
Ended up getting the "Best grade in Computer Science" award that year. Thanks Jeff!