I use detection rules for pretty much everything.
In your example above you don't need the 'or' under the 'and'.
Like me, you've used the Standard Rule for MSI Product Code, not the Smart Rule, I've found that the Smart Rule MSI Product Code can get wiped out if the MSI doesn't exist in your environment for a time - not usually a problem but I can't see any real advantage in using the Smart Rule for MSI Product Code.
With file or registry versions particularly sometimes you need to put in a range of values, Patch Management 7.1 used to use the same rule types before SP1 with the Shavlik engine was released and could have some good examples.
So if you have an executable that may get patched and change version you don't want the installation Policy saying Not Detected because the exex is now 5.0.1 instead of 5.0.0. So you might have >=5.0.0 AND <5.1.
The Agent will show "Not Compliant" until the Detection check runs a second time after install, you need a Compliance Check schedule on the Policy for that.