Jcf2 package mantainer here

.
I found the option of JCF RemoveExpressionReturns often changes itself to False, although I set to true.
Is it a bug?
This happens when you set.
"Break lines that are longer than max line lenght" to "never"
So, it's not a bug, it is a consistency check.
Afaik jcf is not maintained here but by JEDI unless it is forked.
The lazarus fork ot JCF is maintained by Me, see commits in components/jcf2.
jcf itself is one big bug regarding FPC syntax.
E.g. it chokes on many FPC only features, like the way objfpc mode declares and uses generics. And many more. JCF damages your code more often than it helps you.
This is your opinion, and a few years ago it was correct but I honestly believe that with de changes made to the Lazarus fork in the last few years
this is no longer true.
The Lazarus fork currently supports all the syntax accepted by the trunk version of FPC and some Delphi only syntax like long constants strings and inline vars.
I would encourage You to try the latest version of Lazarus and if You find any problems with JCF fill a bug report so we can try to fix it.

Regards
Domingo.