At the moment, there's no way to read the most recently published score from courseware_studentmodule, and I would definitely not want to have an XBlock manually reaching into the database to access it. In the future, submissions/scoring is going to be done by writing out to another service, at which point reading the score manually from the database column won't work.

For the moment, I agree with caching the score in a field, in order to display it to a student, separately from publishing the score via the publish method (to send the score to the LMS).