How to properly remove style for non logged in and front page only

Looks like you may need to use a custom hook unique to Elementor Pro: https://code.elementor.com/php-hooks/#elementorfrontendbefore_enqueue_scripts

The below example is un-tested but modified for your use case.

// Note: I think all you need is to dequeue the style to remove from the page
add_action( 'elementor/frontend/after_enqueue_styles', function() {
    if ( is_front_page() && !is_user_logged_in() ) {
        wp_dequeue_style( 'elementor-pro' );
    }
} );