Recent Posts widget without Title

This code will set the title to an empty string if it is set to Recent Posts (Which as you noted, is what the Recent Posts widget will set the title to if it is empty):

add_filter( 'widget_title', 'wpse_widget_title', 10, 3 );
function wpse_widget_title( $title, $instance, $id_base ) {
    if ( 'recent-posts' === $id_base && __( 'Recent Posts', 'text_domain' ) === $title ) {
        $title="";    
    }

    return $title;
}

Another workaround is to set the title to the HTML entity for a space,   in the widget editor.