Declare global var from Template File and use it in Functions.php

You can use the exact same filter in your template files. If you do need it in functions.php for any reason (maybe you have some additional processing) then you can use your own custom filter.

functions.php:

function my_custom_authorpage_title( $title ) {
    // process ...
    return apply_filters( 'my_title', $title );
}
add_filter( 'wpseo_title', 'my_custom_authorpage_title' );

author.php (before get_header()):

add_filter( 'my_title', function( $title ) use ( $curauth, $term_especialidad, $term_region ) {
    return $curauth->nickname . '...';
});

Hope that helps!