How can I assign separate stylesheets to different pages?

The correct method is to enqueue the stylesheets, via callback hooked into wp_enqueue_scripts. You can add the contextual conditionals inside the callback:

function wpse124258_enqueue_scripts() {
    if ( ! is_admin() ) {    
        // Conditionally enqueue
        if ( is_front_page() ) {
            // Front page stylesheet
            wp_enqueue_style( 'front-page-style', get_template_directory_uri() . '/front-page-stylesheet.css' );
        } else if ( is_page() ) {
            // Static page style
            wp_enqueue_style( 'static-page-style', get_template_directory_uri() . '/front-page-stylesheet.css' );
        } else {
            // Default style
            wp_enqueue_style( 'default-style', get_stylesheet_uri() );
        }
    }
}
add_action( 'wp_enqueue_scripts', 'wpse124258_enqueue_scripts' );

For more information, refer to the Codex for wp_enqueue_style().