As for now, Java plugin will deserialize the raw resource property into resource model before validation.
If the resource property is an invalid structure, e.g. pass a String but schema requires a List, it will fail sadly. And CloudFormation will show Internal Failure for this resource.
If validate resource before deserialize it, it can validate such invalid resource properly.