Trying to understand HTB subclasses rate

You did understand how htb works.
Although, you need to look closer your examples: both parent class have no ceil option, and will then use more bandwidth if available. If in the last example, the parent class had rate 2000kbit ceil 2000kbit, the child class wouldn't be able to borrow that much bandwidth.

However, I do agree that in the 5+3Mbit example, both class won't have the guaranteed bandwidth if the bandwidth is greater than 6Mbit.
This one is probably a mistake.