If you design a child theme for yourself, you don't need to use register_nav_menu(). You know where the child theme calls which menu and what you have to create in the backend.

If you create a child theme for the masses you have to use register_nav_menu(). This function creates a 'location'. This would be something like register_nav_menu( 'main-menu', __( 'Main Menu' ) ). A location called 'Main Menu' is created in the backend. You still need to define as described above, where this menu is located. Now the user can create a menu and select it for this one location.

Creating specific menus that are based on conditional tags is possible too: