On device create we currently use the chain vkGetInstanceProcAddr() function pointer, rather than the functions the layer has already queried when when creating the Instance object. Why - surely they should be the same because the layering was already established when the instance was created?
There might be a valid reason for this - need to do some reading, but it seems unnecessary code and complexity.