https://dlang.org/spec/function.html#inout-functions Within 19.10 (Inout Functions), point 9 states: Nested functions inside pure function are implicitly marked as pure. <code example...> This should be either under 19.5 (Pure Functions) or 19.18 (Nested Functions). I suggest the latter.
Fixed by https://github.com/dlang/dlang.org/pull/2890.