1. Because it is needed. Dont quote on me but what you are saying is a special scenario where just some values are needed but what if the calculation of A is dependent on the settings that B has.

2. Thats better way to organize the code. Say I call the A's function 3 times then I need to calculate the b's value 3 times unnecessarily. You can quote me on this :P