Yes, we know, Andreas' code is indeed doing normalisation.

However it appears the output bytes end up being different. What I get back is:

cf930001303430300166346139

vs

cf9300f0909080f09f92a9

from the spec. 

I'm not sure why. It appears this is due to the character from the astral planes. Java is old and uses 16 bit characters internally - it wouldn't surprise me if there's some weirdness that means it doesn't/won't support this kind of thing. 

I recommend instead that any implementation that wishes to be compatible with JVM based wallets (I suspect Android is the same) just refuse any passphrase that includes characters outside the BMP. At least unless someone can find a fix. I somehow doubt this will really hurt anyone.