More likely the 300 number is based on the combined experience of the committee members who wrote that section of the code. It was proposed, beat around, and compromised upon, like all code issues are.
That in my opinion, is a resonable way to formulate a code. Just because you can generate a calculation based on facts related to a situation doesn't guarantee that you will get a better answer.