In reply to Cathy.

Not all theme output is controlled by the user. And, if/when we do get to a point where the user can change anything on the front end, theme authors still need to be able to set defaults.

One example provided in the post is the navigation menu. Let's say a theme adds a nav menu block to the header. It may want to populate that with a few links. One of those links might be a "Home" link. Currently, that requires the theme use the home_url() PHP function. However, because templates are HTML, we are not running PHP. Therefore, the function would not work. We need a method of correctly outputting that URL.

Another example might be adding a cover block to a custom front page template. The theme author will likely want to include a background image for that cover block. Right now, with HTML templates, the only way to use an image for that block is to do so with a static URL. Instead, theme authors need to be able to point to the correct image URL within the theme.

I hope that helps explain a bit more. There's a whole host of similar scenarios that require dynamic values.