When you have a standard value for a droptree / droplink value, the HasValue will return false when you still have the standard field value. The FieldHasValue will look at the actual value and will return true for a standard value.
Thanks for the PR @JosRaedts, but we are archiving Habitat as no further releases are planned. Future efforts will be focused on the new Helix Examples:
https://sitecore.github.io/Helix.Examples/
When you have a standard value for a droptree / droplink value, the HasValue will return false when you still have the standard field value. The FieldHasValue will look at the actual value and will return true for a standard value.