Hi there,
there are currently 3 elements – each of them have an overview you can see here:
https://docs.generatepress.com/article/elements-overview/
I would recommend watching the videos in those docs.
Simply put – there is no definitive reason that you must have them. But there are plenty of good reasons to use them. Some examples:
1. If you want to implement Google Tag Manger on your site. You can use a Hook Element to do that:
https://docs.generatepress.com/article/implement-google-tag-manager/
Hooks allow you to add your own content, pieces of code to your site in places you cannot access from the post editor.
2. If you want to create dynamic hero sections across your site then you can do that with a Header Element:
https://docs.generatepress.com/article/page-hero-examples/
3. The Layout element allows you to make changes to the customizer settings for specific pages – such as show a sidebar or change the content width to make your posts more readable.
The benefit of these is you can add or change the site dynamically from one place.