Busybox creates all symlinks from all the utilities it contains to the /bin/busybox binary as relative paths. As an example all of busybox's utilities in /bin all have symlinks set to "busybox" since the busybox utility is located in the same directory. When buildroot added the BR2_SYSTEM_BIN_SH option in 2014.11 and allowed the path to the sh symlink to be set, the default is setup as "/bin/busybox". This modifies what busybox setups by default which is to just be "busybox". The issue with this is that any access to /bin/sh under the target directory points to the host build systems /bin/busybox which can be problematic. As an example I perform an md5sum on all files in the root file system under the target directory and then compare them to the installed system on the target hardware, but /bin/sh fails this test since it pointed to the host build systems busybox for the md5 instead of the one built for the target hardware. The solution would be to change the default value of BR2_SYSTEM_BIN_SH to "busybox" when BR2_SYSTEM_BIN_SH_BUSYBOX is selected.
Alternatively, you could change your script to only calculate md5sums of files (and not directories, symlinks, ..). With that said, I don't have any problems with changing the symlink. Care to send a git formatted patch doing that to the buildroot mailing list? For details about how to do this, see the manual: http://buildroot.uclibc.org/downloads/manual/manual.html#submitting-patches
This was fixed in http://git.buildroot.net/buildroot/commit/system?id=e26ec6e45cb4246353bb4b88fbe718212fc89c61/