For default values, the fairly complex reasoning for the code is explained in details in comments. The TL;DR: would be that this code is needed to safely load blendfiles older than 2.83, which were saved without any DNA type information for these default value data. Storage data have always been written with DNA info (added in commits3bae60d0c9and9d91bc38d3), so no need to add special handling for them. Just use regular DNA struct reading. Pull Request: https://projects.blender.org/blender/blender/pulls/139175