That kind of makes sense, even if it's a little wasteful. It takes all the textures used in the model, writes that down each row. Then it goes down each column and replaces whatever skins need replacing. That array is 32 by 32 max, by the way.
and If you had a poly that used buoy_diffuse2.vmt by default, it would land in the second column. Since there's no skin to replace buoy_diffuse2.vmt, it won't change.