You may know that Oberon did it this way.
Araq just wrote in IRC, that I maybe should not use reset to reinitialize an array of ints.
So, maybe an additional SWITCH for intern, low level stuff may be not bad? Generally addr, ptr , reset and such is freely available. Something like import system may be an indicator that we know what we do? Another approach may be of course to spilt modules in high- and low level ones, so that we have to explicitely import the low level component to do dangerous things.Or what I suggested once, to have parameters for module import, i.e. "import mymodule(lowlevel=true)". Just an idea...
Why not simply have "import unsafe" without any flags or warnings and put those unsafe procs there? So if you try to use addr() it fails until you import unsafe (the module unsafe.nim for stdlib!). No flags or warnings otherwise.
What I think is that addr() is "unsafe" but it's usage often is not. Especially for using it to optimize an index lookup.
One could also create an "needs to be explicitly imported" which could be proc foo**() and that needs a singled import foo from module such that the compiler knows it.
Not sure if any of this actually helps making code safer though :)
With unsigned you could not add (+) two unsigned variables without adding an additional module. That was "strange" to say the least. It would be kinda ok if you could not have an unsigned variable without including the "unsigned" module. unsigned was an unsignedutils module while unsigned int addition is perceived as an native available function for the native int type. I guess that was the problem. For seq that seems to be less strange to include a module to handle them.
With addr() it is "clear" when you use it and you can't use it otherwise. Problem is that ptr needs to be in system.nim and there may be procs anywhere which return a ptr too even if you never include the "dangerous" module.
Thinking again about it I personally like it as it is. I do not want to include something just to say "I am a big boy, let me play with everything".