The method in question is the default for dealing with non-standard array types. I think overloading would be appropriate here:
function Flux.Optimise.update!(opt, x::CatView, dx::CatView)
foreach(i -> Flux.Optimiser.update!(opt, x[i], dx[i]), 1:length(x))
return x
end