Mostly because getting from an unknown state to a desired state is not a build step, at build you start from a known state, which is nil or blank, and create something.
But what you're missing, I think, is that with configuration as code you build the desired state once and deploy the resulting artifact multiple times.
For a Chef Cookbook as example, you ...
Running your config.yml through yamllint, produced the following:
1:1 warning missing document start "---" (document-start)
13:3 error duplication of key "build" in mapping (key-duplicates)
25:19 error syntax error: mapping values are not allowed here
When I add colons to the entry on lines 25 and 28:
The closest thing to an official source for best practice configuration management is ITIL, but it is important to remember (most don't) that ITIL is a toolbox of ideas and techniques, it is supposed to be adapted to the unique requirements of each site, not applied verbatim.