How can a shortcode can take the place of the featured image in a post?

Apparently you are simply not translating your logic into code:

  • if it has shortcode, do this,
  • if not has shortcode but has thumbnail, do that,
  • otherwise, do something else.
if ( wpsite_has_topwide_shortcode() ) { 
    echo 'shortcode';
} elseif( has_post_thumbnail() ) {
    echo get_the_post_thumbnail( $post->ID, 'full' );
} else {
    echo 'Hello World';
}