I discovered an issue with casts when upgrading an app from 5 to 7 that caused quite a few tests to fail. Quick 7 will return null values either returned from the database or when instantiating a new entity as an empty string, whereas Quick 5 and 6 will return the casted value.
I tested with ACF 2021 and the BooleanCast@quick cast.
I created the following issue:
I feel like the behavior in 5 and 6 is the right way to handle things, but that’s just my opinion.
This was intentional, but was actually fixed in 7.0.1 as a bug fix. The new behavior is the desired behavior since a NULL value does not necessarily mean false. It could mean not set yet. If you want a default value, you should be able to set default="false" on the property.