It also says that the memory doesn't always get free because not any operating systems support this. I find this strange as I've never had this problem in other languages.
What other programming languages have you used? Any language that implements its own memory management system (python, lisp, scheme, etc.) will exhibit similar behavior. It's only the languages like C, C++, etc where you have fine control over memory allocation/deallocation where you mayn't see this behavior. But even then, it depends on how the language is implemented. Most C implementations (for instance) won't exhibit this behavior, but as soon as you're using a C interpreter that might have some memory management scheme, all bets are off.