Nice article!
IMO, Getters and setters are antipatterns and violate information Hiding and Encapsulation principles.
In your example. Code is magic and coupled and hides implicit conversions violating The Least Surprise Principle and Weight class is an example of an anemic object without real behavior.
All these problems are difficult to see in small programming snippets but cause lots of issues in big systems.