Even something as simple as this needs logical const

class MyMathClass
{
    invariant int multiply(int x, int y) /* logically const */
    {
        debug logfile.writeLine("multiply.called");
        return x * y;
    }

    debug private Stream logfile;
}

You can't tell me that's not a real world need.