Is it possible to set the same base for categories and tags?

You can, but you’ll need to intervene with request parsing to give WordPress some help figuring out if it’s a category or a tag.

The below code basically looks at the query and checks if category_name is set. If it is, it checks if there is actually a category with that slug. If the test fails, then it is assumed to be a tag, and the query vars are reset appropriately.

function wpd_categories_might_be_tags( $query ) {
    if( ! is_admin() && isset( $query->query_vars['category_name'] ) ){
        $term = get_term_by( 'slug', $query->query_vars['category_name'], 'category' );
        if( false == $term ){
            $query->query_vars['tag'] = $query->query_vars['category_name'];
            unset( $query->query_vars['category_name'] );
        }
    }
}
add_action( 'parse_request', 'wpd_categories_might_be_tags' );

The downsides to this are the extra processor cycles required to serve each of these requests, and you can never have a tag with a slug that is also a category.