This is intended behaviour.
Metamethods are not bound to squirrel language instructions, but rather internal processing _caused_ by instructions.
Hence newslot is called when a new slot in fact gets created, while metmethod set is called for an already existing slot and gets assigned a new value or reference (which is exactly what happens when you "dofile" a second time in the same table context).