Set front_page programatically after user login via query, while leaving site option alone

You could modify the main query on your static front page to switch to different pages depending on the logged in user by doing something like this:

add_action('pre_get_posts', function($query) {
    // if not admin, and if it is the main query, and the page id matches the page id set to be static front page...
    if ( ! is_admin() && $query->is_main_query() && $query->get('page_id') == get_option('page_on_front') ) {
        // ...Check if user is logged in
        if ( is_user_logged_in() ) {
            // ...Maybe create a handy array where user ids are keys, and matching page ids are the values
            $users_pages_ids_array = [
                3 => 23,
                5 => 25,
                7 => 31
            ];
            // store the currently logged in users id
            $current_user_id = get_current_user_id();
            // load the page that is matched with user
            $query->set('page_id', $users_pages_ids_array[$current_user_id]);
        }
    }
});

Then the static front page setting is left alone outside of your customization’s.