How to localize built-in strings in a future-proof manner?

i think you need the gettext filter. lifted directly from the codex, here is an example:

add_filter( 'gettext', 'theme_change_comment_field_names', 20, 3 );
/**
 * Change comment form default field names.
 *
 * @link http://codex.wordpress.org/Plugin_API/Filter_Reference/gettext
 */
function theme_change_comment_field_names( $translated_text, $text, $domain ) {

    if ( is_singular() ) {

        switch ( $translated_text ) {

            case 'Name' :

                $translated_text = __( 'First Name', 'theme_text_domain' );
                break;

            case 'Email' :

                $translated_text = __( 'Email Address', 'theme_text_domain' );
                break;
        }

    }

    return $translated_text;
}

http://codex.wordpress.org/Plugin_API/Filter_Reference/gettext#Change_the_Comment_Form