This one will be hard but the use cases are as follows:
The user installs apache2 from APT and removes /etc/apache2/sites-enabled/000-default. Blueprint should be able to recognize that this file from the package is missing and propagate that change.
The user removes a file that appears in a previous revision of a blueprint. Blueprint should be able to remove that file when the new head revision is applied.
I definitely agree.
detecting the condition aside... how about, in the "files" section, a "remove" (instead of an info dictionary) to indicate that i'd like to have blueprint remove the named file? so, to delete "/etc/nginx/sites-available/default" you'd have something like this: