I agree, looks like a bug. I'd probably change it to something like this
require(['$api/models'], function(models) {
models.player.addEventListener('change:context', contextChanged);
var last_context=null;
function contextChanged(e) {
if(last_context != e.oldValue.uri) {
last_context = e.oldValue.uri;
console.log('hola, new context uri - ' + last_context);
}
else {
console.log('faux context change');
}
}
});