So, GCC [and, he now adds, Clang too] clearly already has a notion of "contains mutable members." Your type-trait should just expose that notion to the end-user, and as such, it's a plausible candidate to propose for standardization, IMO.
However, I took a quick look at your GCC patch, and it looks to me as if you reinvented the wheel there. Why is your patch not (in spirit) a one-liner? Why are you manually iterating over members and bases? This is not the implementation I would expect to see, given the above rationale.
It is possible that GCC's existing "contains mutable" logic is not yet factored out into a simple function (because I bet it's used in only one place right now). [Nope, it must be used in several places. I'd be surprised to find it open-coded in all those places.] In that case, instead of merely finding and calling that function, you'll need to factor out that function as part of your patch. I have no special knowledge or connections re GCC, but I'd imagine that a well-written such patch might actually be accepted upstream, if accompanied by a rationale such as I've given here.