Structs are very similar to C structs, but they live on the stack and in globals, and never live in the heap, other than as data members of classes, in which case we allocate an array of the struct type. They don't have to be reference counted because they use copy semantics. We can pass large structs to functions via pointers, but this is invisible to the Rune user. Structs have no constructor or destructor, and instead are constructed with function-call syntax. In contrast, class instances only live in the heap, allocated in SoA memory layout.
Allowing methods and operator overloading on structs would an efficiency hack, for small objects that would rather be copied by value rather than reference, such as a complex number.
In any case, we don't need this feature for the Rune bootstrap, so I'm voting we put it off for now.
Bill