> Nim appears to have borrowed it from Ada
No, it does it this way because it reduces the nesting level in practice and the "this" parameter is subject to the same type modifiers (var/sink) as every other parameter. It also avoids the schism between object oriented programming and procedural programming.