Modules can have stateful data attached to themselves as parameters or attributes. These can be mutated during forward (or any other method that is run on the Module), so it doesn’t make sense to have it be const.
We don’t have any way of backing out changes to Module state, so re-loading is the only way to get back a known state. We may in the future have a user-accessible way of stating that some method is pure and has no mutable operations, but that’s still something we’re discussing.