Should custom meta boxes be able to output shortcodes the same as WordPress’ native post editor?

Short answer: no.

Shortcodes are for injecting content directly in the Post Content, by the user, via the Post Edit screen.

If your data are coming from a metabox, you have other, better, more efficient, and easier-to-control means of injecting content into the Post Content: primarily, the the_content filter (for general usage), or custom action hooks (for Themes that provide them).

Using the the_content filter to add your code is simple:

function my_plugin_filter_the_content( $content ) {
    // Get post custom meta
    $values = get_post_custom( $post->ID );
    // Determine if shortcode meta is set
    $my_custom_content = isset( $values['meta_box_button_shortcode'] ) ? esc_attr( $values['meta_box_button_shortcode'][0] ) : '';
    // Tell WordPress to execute the shortcode
    $custom_shortcode_output = do_shortcode( $my_custom_content );
    // Append the executed shortcode to $content
    $content .= $custom_shortcode_output;
    // Return modified $content
    return $content;
}
add_filter( 'the_content', 'my_plugin_filter_the_content' );

No need for a shortcode.

Also, using a filter, you don’t have to worry about your shortcode being left orphaned if the user deactivates your Plugin.

Note that, if you need to output a specific shortcode, you can use do_shortcode( '[shortcode_name att="value"]' )