I've seen numerous instances of people trying to set VIRTUAL_RUNTIME_... within an image bb or image bbappend, and then not being able to figure out why it's being "ignored". There needs to be a way to define the scope of a variable (in human, if not machine terms) and then scan for violations of the scope. One possible way to do this would be to add a (standard) 'scope' flag to variables. If unset, it's everywhere.. if it's set to 'distro', then it can only be "set" outside of a recipe. If it's set to 'recipe' it needs to be set within a recipe or using an override (such as pn-recipe)...