I believe this may have been resolved in the Winter '18 release. I just added a component to the utility bar that implements force:hasRecordId
and it does pull it in.
For reference, here is the relevant component attributes:
<aura:component implements="force:hasRecordId,force:lightningQuickAction,flexipage:availableForAllPageTypes">
And here is the JS controller that fires on init:
handleRecordChange: function(cmp, evt, hlp) {
// only call server if user is on step 1
var step = cmp.get("v.step");
if (step == 1) {
var recId = cmp.get("v.recordId");
if (recId != null) {
// delegate to helper
hlp.getRecordInfo(cmp, cmp.get("v.recordId"));
} else {
cmp.set("v.recordContext", false);
cmp.set("v.step",0);
}
}
}
I think for this to work your Lightning Component needs to be on API version 41.0. You can adjust this by clicking the "Bundle Version Settings" button in the cloud dev console.
Hope this helps!