ローカル関数は、それが定義されているスコープから外れると無効になってしまいます。
thisにアクセスしなければ問題ないようですが、これは仕様でしょうか?
コンパイラは、Digital Mars D Compiler Beta v0.61 です。

import stream;

class Test {
 char[] m = "Test";
 void delegate(char[]) get_local() {
  void local(char[] str) { stdout.writeLine(m ~ " : " ~ str); };
  local("inner");
  void delegate(char[]) d = local;
  return d;
 }
}

int main(char[][] args) {
 Test obj = new Test();
 void delegate(char[]) method = obj.get_local();
 method("outer");
 return 0;
}

====================
(結果)
Test : inner
Error: Access Violation