WP Posts-pages text hiding does not work

The first thing I see wrong is your first “If” statement. It wrapps everything, including your “return” statement.

Assuming the rest works, you might try this:

function hide_replace_register( $content ) {
    if (!is_user_logged_in()) {
        $updated_content = explode("<!--hide-->", $content);
        $updated_content = explode("&lt;!--hide--&gt;", $content);
        $updated_content = explode("&lt;!&#8211;hide&#8211;>", $content);
        $ucontent = $updated_content[0];
        if ($ucontent !== $content) {
            $ucontent .= '<a href="' . wp_registration_url() .'"><strong>To read a full article text - please, Register!</strong></a>';
        } else {
            $ucontent = $content;
        } // end if content has been modified

    } else { // else .. user IS logged in, so return the original content
            $ucontent = $content;
    } // end if user is logged in
        return $ucontent;
} // end function hide_replace_register
add_filter('the_content', 'hide_replace_register', 10);

I am a bit suspicious of multiple explodes in a row, without any array_merge function, but this modification will at least output something for logged in users.