Why is libraries-override not removing assets?
This doesn't answer the original question, but turns out to be a better solution in my case.  You must clear your cache with each change to this function:

/**
 * Implements hook_library_info_alter().
 */
function example_library_info_alter(&amp;$libraries, $extension) {

  // If you have 'stack' as your subtheme, you might have unwanted lightbox assets.
  if ('stack' === $extension) {

    if (isset($libraries['global-styling'])) {

      $current_path = \Drupal::service('path.current')-&gt;getPath();
      $path_args = explode('/', $current_path);

      // Your conditions may vary.
      if ('book' == $path_args[1] &amp;&amp; isset($path_args[2]) &amp;&amp; is_numeric($path_args[2])) {

        // Helper function below.
        if (example_array_key_exists_r('css/lightbox.min.css', $libraries)) {
            unset($libraries['global-styling']['css']['base']['css/lightbox.min.css']);
        }

        if (example_array_key_exists_r('js/lightbox.min.js', $libraries)) {
            unset($libraries['global-styling']['js']['js/lightbox.min.js']);
        }

      }
    }
  }

}

/**
 * Recursively search for an array key.
 *
 * @see https://stackoverflow.com/a/2948985/861826
 *
 */
function example_array_key_exists_r($needle, $haystack) {

  $result = array_key_exists($needle, $haystack);

  if ($result) return $result;

    foreach ($haystack as $v) {
      if (is_array($v)) {
        $result = example_array_key_exists_r($needle, $v);
      }
      if ($result) return $result;
    }

    return $result;
}