The same problem exists if one uses "substitute()" or if one uses the grouping operator and \1 ... the combining characters get removed.
I'm trying to look at the differences between regexp.c for vim6.4 and vim7.0, but there are a ton of changes, and I don't know the code :(