public, static, non-immutable (aka, point to an instance of a mutable object OR they lack the readonly or const flag in C# or the final flag in Java) are indeed almost as dangerous as global, non constant variables. The only thing they save you from is namespace collision.
Static mutable state does have its uses, but you should be very, VERY wary of making that public. (private mutable statics can be quite useful in some limited circumstances if you know how to deal with the memory and thread safety implications)