Some questions about best practices for custom code

Regarding question #1:

It’s difficult to answer because WordPress is flexible so there are different ways to do things (I know this is vague) and it depends on what your skills are (are you more skilled at React and JS or PHP? ), how much time you are willing to spend learning, and other circumstances, and like freedom for whom (the developer or the end user? Usually freedom for one comes at the cost of the other).

Customizing Backend code: this is generally recommended to be done with plugins.

Shortcodes (here’s a great overview of shortcodes by wpshout) are used generally to input more complex content. If you are working with many co-workers and want to give them some flexibility on adding content like maps without manually copying and pasting html, css, php, and js, you could use shortcodes.

Note, that the block-editor (known as Gutenberg), is aimed to replace shortcodes and can do the same thing although the block-editor uses React and is a remarkable change from using php.