Need some help understanding widgets

Widgets are contained in sidebars (not 100% correct, but good enough). A sidebar is an area in which placement of widgets can be managed in the admin. Widgets are realy an instance of a widget class and usually you can have several widgets of the same class in the same and different sidebars.

You can define and register the code for the widget’s admin and front end HTML if you want to add new types of widgets.

You need to register sidebars so wordpress (admin and front end) will be able to associate widgets with specific sidebars

A call to dynamic_sidebar will output the HTML for the widgets contained in the specified sidebar. Usually in a theme you will have a sidebar registration per each call of dynamic_sidebar but you don’t have to do it if you don’t need it.

2.
Can’t, unless the theme has some way to control such a behaviuor which most don’t have. It is up to the user to place an ammount of widgets that make sense in each sidebar.

3.
Page builders should be avoided as much as possible IMO, but this is actually a great example of the power of widgets. Assume you have a contact information that needs to be included as part of several pages. If you “hard code” the information in the HTML, when there will be a need to change the info, the user will need to hunt for all the pages in which it is located and manually change the information, while the inclusion of a widget (and I think all page builders let you insert a widget in the content) create automattically a centralised place in which the user can change the info.

Or in a more general way, widgets are useful tool to give the user power to control some aspects of the front end of the site. You don’t need them if you are developing a 5 page site that is not ging to change, or if you are in any setting (corporate for example) in which a dedicate developer controls the behaviour of the site. In both cases it might be better to just code what ever needed in PHP and not give an option to the user to make mistakes.