Thanks for asking :-) The code is equivalent to:
public LogRecorder startLogRecording() { assert recorder==null : "recorder was already started..."; recorder = new LogRecorder(); return recorder; }
That's if you think that asserts are useful at all. In this case I must concede that the above is shorter than an "if ... else throw new IllegalStateException(...)".
Granted, the duplicated check is not expensive, and it's not in a place where performance counts, but it hides the intent of the code, even though it might look as if it were emphasizing it. It took me a while to find out that the if is superfluous here. I came to call this "smoke and mirrors coding."
Also: checking such state information is a smell that starts me looking for the real condition. For example, it may be possible to instantiate the LogRecorder in the constructor of the using class, which would remove this method - and the possibility of an inconsistent state - entirely. That's what I came to call "making more feet so it's easier to hit."
Alas, that is not exactly the case here, because then the LogRecorder would be instantiated in production, when only being used in testing. Code that is only needed for testing but goes into production: Not a WTF as such, but another smell.