Re `set` v `get` behavior, the `set` may actually be a bit dangerous in that it may create a misaddressed xblock (e.g., an html module) in order to do an update on it. It should perhaps have the same if-its-of-a-magic-type logic. It hasn't caused problems up to now b/c it only gets called in the context of the magic types (course-info and about are the magic types).