If the site is fairly shallow (meaning no deep directories) then relative is simple to write in a static site. However, as the site gets deeper and deeper, relative linking within a particular deep group of folders is fairly easy, but linking to resources far up and down other paths would be cumbersome and difficult to maintain. It would set one up for a lot of potential linking errors. Easier (and better) to just start from the root and work our way down the path.
We also need to consider generated pages. If our templates use absolute (root based) paths there is less chance of errors and less maintenance.
name attributes are seldom used on page fragments, and more commonly used in web forms. When the form is submitted, the named form controls all spill their content (values) into the POST data.
id attributes are fragment identifiers, and are anchors for links both inside and outside of the page. Recall that script can also hook a single element by id and operate on that element (or all its children) in one go.
In the very early days, before we had
class, page fragments were identified by an empty anchor tag…
These were page specific and could not be reached from another webpage, only from within the same page. They were clunky and quickly forgotten once