You appear to have misunderstood what I said, and/or I did not explain it very well.
The RS overhead has already been subtracted from both the max attainable net data rate, and the actual net data rate. You do not subtract the RS overhead from the attainable to get to the actual.
The max attainable rate is an estimation of what your line might have achieved had it trained with no speed cap and a target SNRM of 6 dB, probably. But you've got a 40 Mb speed cap as indicated by the speed being exactly 40Mb (sometimes it's a few kbps under) and the SNRM being 7.8 rather than closer to 6.
From the framing parameters, 138 data octets and 8 redundancy octets, that's an overhead of 5.8%, if I've done the calculation correctly, it might be right for M=1. You can determine the actual percentage used by the RS redundancy data from the framing parameters.
You are also not considering the coding gain from the RS coding, which is effectively boosting the SNR. So you may well actually be benefiting from the RS coding, if the effect of the coding gain is greater than the amount of bandwidth used to carry the RS redundancy data. Or at least you might do if your line weren't capped at 40 Mb.
RS coding is not necessarily there solely to fix errors, it may well be there to optimize the amount of bandwidth, if configured for optimal coding gain rather than to provide a particular level of error protection.
Also, as far as I know, the DLM will not always activate G.INP for any particular line.
Edit: And no, it's not G.INP nor RS coding that's responsible for the IP Profile. You'd have pretty much the same IP Profile if your line connected at 40 Mb with no G.INP and no RS coding.