I stumpled upon the problem while porting lwjgl to Buffers instead of pointers. The bug is described herehttp://developer.java.sun.com/developer/bugParade/bugs/4715166.html
(the emphasis is on duplicate() but slice is mentioned too)
At first I simply used the workaround mentioned (set the order after each slicing), but the really annoying part comes when you want to slice your Int-Float-Whatever-else-than-ByteBuffers; byte order can't be changed on those! It forces me to stash the original ByteBuffers and slice those instead, ordering and then converting to the right type. And this is annoying when you just wanted to index into an existing buffer the way you could do address + offset in the pointer-lwjgl days.