The overview section in the programming manual perhaps answers the bonus question:
> Why not to treat the message like a normal language element with which different operations are possible : loading, passing, modifying, dispatching? Could we do it without using reflection all the way?
I don't know how the guts of smalltalk are implemented, but, if there's a lot of reliance on runtime reflection involved, then maybe there's your answer.
I think, then, that the answer to the first two is, "It's like Smalltalk."
> Why not to treat the message like a normal language element with which different operations are possible : loading, passing, modifying, dispatching? Could we do it without using reflection all the way?
I don't know how the guts of smalltalk are implemented, but, if there's a lot of reliance on runtime reflection involved, then maybe there's your answer.
I think, then, that the answer to the first two is, "It's like Smalltalk."