Cache the returned result of isPOD

So multiple evaluations don't recursively check all fields each time.