Calling various CSS sheets in header a good idea?

Instead of directly outputting the stylesheets to your header, you should use wp_enqueue_stylesheet. Take a look at this example:

add_action( 'wp_enqueue_scripts', 'my_scripts' );
function my_scripts(){
    if (is_page([505,981,928,1035,1036]))
        wp_enqueue_style( 'css1', get_template_directory_uri().'/start-here.css');

    if (is_page([37,40]))
        wp_enqueue_style( 'css2', get_template_directory_uri().'/faq-links.css.css');

    if (is_page('27'))
       wp_enqueue_style( 'css3', get_template_directory_uri().'/contact-form.css');

    if (is_front_page())
       wp_enqueue_style( 'css4', get_template_directory_uri().'/slider.css');
}

This way, you don’t have to mess with your header.php file in any way, and you make sure your approach is in an standard way.

For example, if you are developing a commercial theme, most of the markets won’t allow you to directly print a stylesheet to your header.

Further reading at WordPress Developers.