I'm sure the developers know better than I do, but from what I have observed, it seems to store the file in memory, and decode to a buffer of about 40MB.
25MB FLAC file - memory increases by roughly 25+40MB. 800MB DSD file - memory increases by approximately 840MB.
With gapless playback, about 10s before the track changes, the currently playing file is cleared out of memory, and the next one is loaded in. (this is probably why memory playback doesn't work nicely over some networks)
I'm guessing that if you're not using gapless playback, and were using a 16s crossfade (the maximum if I recall correctly) it would happen a bit sooner.
I don't really see the benefit of decompressing the entire track into memory though.
Unless you have something like 64GB of memory so that your entire playlist fits in RAM, it will always have to be decoding something during playback anyway.
And I don't believe that realtime decoding has any impact on the sound unless your CPU is not powerful enough to actually decode the track - and most audio decoding is trivial for modern CPUs.
I get the impression that's the same opinion the developers have.