Kspace updating

Hi folks,
I have read the source codes of coul_long_soft, adapt_fep, and pppm (which is mostly similar to ewald).
I realized that when a user employs a soft core pair potential with a long-range solver and tries to adapt/fep electrostatic interactions, kspace is not updated unless the user specifically calls for its update with lambda or instead of using a long-range soft core pair potential, scale atom charges.
In the coul_long_soft source code, it looks like real space is softened, while kspace is treated as a full interaction. Also, in the adapt_fep source code, it clearly says when atom charges are scaled, coul and kspace are both again calculated to follow electroneutrality. If that is true, when the atom charges are not scaled, then we have to update kspace using “kspace v_lambda” along with a long-range soft core pair potential (coul/long/soft or lj/cut/coul/long/soft or …)

Is this understanding from the source code correct?

In my personal opinion, the only meaningful way to scale Coulomb interactions is to scale the charges. Everything else is next to impossible to do in a consistent manner.

Thanks for your opinion.
So from my understanding, if a user, for example, does this as follow

fix q all adapt/fep 100000 pair coul/long/soft 12 34 v_lambda after yes

It will lead to artifacts, because first of all, kspace is not correct and it is not scaled. Therefore, the Coulomb interaction energy which is a sum of real space and kspace is not accurate.
To over come this, it is better to use:
fix q all adapt/fep 100000 pair coul/long/soft 12 34 v_lambda kspace v_lambda after yes

or alternatively we can say:
set type 34 charge 0.0
variable lambda equal ramp(0.0,1.0)
variable q3 equal 1
v_lambda
variable q4 equal -1*v_lambda

fix q all adapt/fep 100000 atom charge 3 v_q3 atom charge 4 v_q4 after yes