It seems that (wrap-program ...) over-writes the previous wrapping of a package done by the build system.
This does not happen for many (wrap-programs) called in the modify-phases section of the package definition itself.
Attached is a package definition for ruby-ronn-ng, that demonstrates this issue. The custom (wrap-program)-s
called from the package definition seem to over-write the definitions of GEM_ENV as made by the 'wrap %standard-phase
of the ruby-build system.
The wrappings made by 'wrap %standard-phase can be seen during the custom 'DEBUG phase. The subsequent 'wrap-program1
and 'wrap-program2 add more environment variables to the wrapping, but on checking the contents of `which ronn`, once
it is installed (using `less $(which ronn)`), it can be verified that the GEM_ENV package definitions have been overwritten.
This may just be a ruby-build-system issue. Or perhaps it might be something that permeates over a few more build systems.
That still remains to be tested.
Attached are a few different versions of the package definitions for ruby-ronn-ng for the ease of those who would like to
1. ruby-ronn-ng-standalone.scm : To be tested using `guix time-machine -- build --verbosity=2 --file=ruby-ronn-ng-standalone.scm`
2. ruby-ronn-ng.scm : To be appended to the end of the gnu/packages/ruby.scm file in local guix checkout, and be tested using the local version
3. ruby-ronn-ng.patch : To be applied to local guix checkout
 - This package definition needs ruby-mustache, which has only recently been added to guix. Hence, the time-machine.