The L/R <-> M/S transformation may be performed losslessly, with the proper math. This is why it's used adaptively in every lossless codec I know, as it's an efficiency boost in almost every case.
To put away any doubt about the process itself, and its possible efficiency boost:
D:\Music\Z Unsorted>wavpack -f -j0 -m "neon.wav" "neonlr.wv"
WAVPACK Hybrid Lossless Wavefile Compressor Win32 Version 4.2 2005-04-02
Copyright (c) 1998 - 2005 Conifer Software. All Rights Reserved.
original md5 signature: fbae7db045b46a82c242dab87f04210a
created neonlr.wv in 3.27 secs (lossless, 28.20%)
D:\Music\Z Unsorted>wavpack -f -j1 -m "neon.wav" "neonjs.wv"
WAVPACK Hybrid Lossless Wavefile Compressor Win32 Version 4.2 2005-04-02
Copyright (c) 1998 - 2005 Conifer Software. All Rights Reserved.
original md5 signature: fbae7db045b46a82c242dab87f04210a
created neonjs.wv in 3.16 secs (lossless, 29.42%)
D:\Music\Z Unsorted>wvunpack -m -v *.wv
WVUNPACK Hybrid Lossless Wavefile Decompressor Win32 Version 4.2 2005-04-02
Copyright (c) 1998 - 2005 Conifer Software. All Rights Reserved.
neonjs.wv:
original md5: fbae7db045b46a82c242dab87f04210a
unpacked md5: fbae7db045b46a82c242dab87f04210a
verified neonjs.wv in 2.28 secs (lossless, 29.42%)
neonlr.wv:
original md5: fbae7db045b46a82c242dab87f04210a
unpacked md5: fbae7db045b46a82c242dab87f04210a
verified neonlr.wv in 2.25 secs (lossless, 28.20%)
**** 2 files successfully processed ****
D:\Music\Z Unsorted>dir neon*
Volume in drive D is 114.0
Volume Serial Number is A8F9-887B
Directory of D:\Music\Z Unsorted
2005.06.03 02:09 PM 46,233,308 neon.wav
2005.06.03 02:24 PM 32,629,700 neonjs.wv
2005.06.03 02:24 PM 33,193,642 neonlr.wv
3 File(s) 112,056,650 bytes
0 Dir(s) 20,989,685,760 bytes free
Just an encoding of John Mayer's "Neon" from Room for Squares, with JS forced off, then enabled (which is the default, but I forced it on to remove doubt about that fact). This codec is indeed purely lossless, and obviously in this sample, the use of JS was also lossless, and saved 0.2% on the total bitrate. This will obviously differ for each file, but: it is indeed purely lossless - both md5s match, and you can feel free to check out the code in "pack.c" and try it yourself.
Edit: I apologize for the long post, but it seems like a pretty easy, convincing case of lossless JS usage, and establishing the process as lossless seems like it would help clear some things up.