I'd much rather have the motivated, driven guy who wants to dot his I's and cross his T's than a programmer who thinks that learning big-O notation isn't worth it, that learning software engineering methodology is a waste of time, and operating systems is dumb because all hiring positions want Java programmers.
High GPAs come with certain attitudes built in. It is not the only indicator of success, but when I see anything less than a 3.5 it makes me question the candidate's grit. Is that how you are going to behave when you are given work you don't like, or do not deem is important? We are paying you "A+" salaries, we want A+ work. Not night-before C- "I turned it in" software.