Calling refresh on a SC.Record object does not actually refresh the record.
This has to do with line 290 of lib/system/record.js. If refresh is called with no arguments or with recordOnly = false, the statement:
if (recordOnly || (none(recordOnly) && none(prKey)))
will always evaluate to false.
none(recordOnly) should be removed.