Hi - I asked pretty much the same question last night and got a good answer:
http://social.technet.microsoft.com/Forums/en-US/configmanagerapps/thread/25372c4c-921b-4f57-a328-4568fc11b225
I agree the most logical thing to do would have a mechanism for revoking that application, but for the meantime use either:
a) Deployment type requirements to limit the scope of where the application can be deployed to. Assuming you set this up correctly in the first instance a person moving to a different role shouldn't cause a problem as they won't be eligible to install it.
b) Deployment to collections that consist of security groups and not direct user links. That way when the user changes department they won't be in the collection any more and won't see the app.
.
I was trialling this in my test environment last night and basically did the following:
1) Create collection for "Sales" that is limited to the AD security group "gSales"
2) Create application with deployment type native MSI that has the requirements (User) of "Primary PC == True".
3) Create user based deployment of the application to the Sales collection
.
So... when the user moves group they will they no-longer be able to see the application to install anymore as the deployment isn't advertised to them. Also in the meantime assuming they regularly use 3 PCs they will see it advertised on all PCs via the Application
Catalog but can only issue the install on their primary PC thereby limiting Bob to using 1 licence and not a potential 3 licences.
I suspect/hope a more practical "revoke" will come in SP1, but this will suffice until then.
Cheers