Why does this fail: Disabling plugins enqueue_script() in functions.php

You have two issues here:

  1. Conditional tags (is_single()) should not be used so early in functions.php.
  2. Your removal function is getting hooked to run after function it’s meant to remove.

It should be something like this:

function remove_shc() {

    if ( is_single( array( 17, 19, 1, 11 ) ) )
        remove_action( 'wp_print_scripts', 'wp_shc_head_scripts' );
}

add_action( 'wp_enqueue_scripts', 'remove_shc' );