I discovered this issue while helping a colleague add course grade information to the gradebook entity feed. It is possible that no one else is using this method, but Indiana University uses this method to extract course grade information via webservices for our SIS system. So it is possible other institutions may be using it similarly.
GradebookService.getPointsEarnedCourseGradeRecords is returning different course grade values for students than those that appear in the UI. Replacing the getTotalPointsInternal and getTotalPointsEarnedInternal with the equivalent methods used by the UI calculations (in GradebookCalculationImpl.java) fixes the issue in my testing. I have attached a patch.
The deeper issue is that course grade calculation is duplicated in the GradebookService and within the tool itself. It is possible to relocate all of the methods related to course grade calculation to the BaseHibernateManager (which is used by both), but it is a significant change that I don't have the time to work on myself.