So I found that the behavior of civicrm_html_head() had actually changed – before, the JS (and most CSS) would only load on civicrm pages – but a 3 specific CSS files would load on all pages. r45519 partially reproduces this – it registers the CSS files on all pages.
However, there's a problem with how the html-header is produced. Our current mechanism for rendering the HTML header region kicks off in CRM_Core_Page (and a few similar spots like CRM_Core_QuickForm_Action_Display). However, on non-Drupal pages, we never get the 'kick-off'.
We can hack this into the specific Drupal pages that we need, but I think it would be brittle – if downstream devs get ambitious with mixing together blocks/pages/panels (e.g. creating a panel-page which embeds pages created by Civi extensions that use their own CSS/JS), then we're likely to get weird/unintuitive results (eg redundant resource loading).
I think we need to change the way we kick-off rendering of the header region. The kick-off should be initiated whenever the CMS decides to render the header. For example, on Drupal, this might be hook_html_head_alter.
Actually this is related to the CRM_Core_Resources changes. Our js is no longer being added to the page when civicrm_initialize is called, which is a problem.
totten you recently fixed something very similar to this, would you be willing to take a look?