multiple functions with same filter

There’s nothing technically wrong with this. It will work, but it’s very important to make sure the usage of the filter is consistent everywhere it’s used, otherwise you could experience issues.

My suggestion would be to abstract the powers check into a separate function, and use the filter there. For example, the filter could be inside user_is_powerful(), and then you check that function wherever you need to:

function user_is_powerful() {
    $is_powerful = false;

    // Do stuff.

    return apply_filters( 'check_powers', $is_powerful );
}

function kick_ass() {
    $powers = user_is_powerful();

    if ( $powers ) {
        do_smthng();
    }
}

function fly() {
    $powers = user_is_powerful();

    if ( $powers ) {
        do_smthng_else();
    }
}