use of do_action() without any functions attached

If you are seeing this in plugins (or leaving them in your own) then you are making your plugins more developer friendly.

For example, we can use do_action('stv_plugin_on_form_submit', $entry, $form, $user); inside a custom plugin that tracks form submissions. After all of your code and before the function completes, adding the do_action would enable another developer to extend the functionality of your plugin.

Here’s my “extension” to your plugin via the action defined:

add_action('stv_plugin_on_form_submit', 'tom_custom_stv_plugin_on_form_submit');
function tom_custom_stv_plugin_on_form_submit($entry, $form, $user){
    //send HTTP POST to API
}

If you’re using this technique, you are ensuring that your plugin (or theme) is more flexible for other to use in the future.

Further reading: