そもそもconstじゃないメソッドのdelegateをconstなインスタンスから取れるというのがおかしくね?

import std.stdio;

class Int {
int value = 0;
void set(int i) { value = i; }
}

void main() {
auto c = cast(immutable) new Int;
// c.set(42); // 当然エラー
(&c.set)(42); // エラーにならない!
writeln(c.value); // "42"を出力
}

やりたい放題じゃね?