FWIW, I don't think Remi's solution requires that we use static libraries. If we are taking over the build process for libpng, we can just as easily put it in our own winepng.dll as we can statically link it into user32 and windowscodecs.
Nor does getting libraries from the distribution require that they be dynamic, we could pick up static libraries from the distro at Wine build time. Then we'd still have the decision of whether to put that library into its own dll or the Wine dll's that use it.