I am wondering the same thing. It initial thought is that maybe -jaraĝa is used before a noun it is describing, for example: "Mi estas kvardek-jaraĝa viro" would mean "I am a 40 year old man" whereas "Mi estas kvardek-jara" simply means "I am 40 years old." That's my guess, anyway.
I think if you used "havi", you would use the noun "jarojn". You wouldn't say you have [an adjective], so since this is one (ends in -a), it makes more sense to use "esti" here. Probably. A fluent speaker will have to confirm or disconfirm.
Indeed, "Mi havas kvardek jarojn." is correct as well when the question is the other way around.
I don't think "I am forty year old" should be accepted with a warning for a spelling mistake, as people who are using Esperanto to learn English will learn incorrect English grammar. "I am forty year old" is grammatically incorrect, it should be "I am forty yearS old" or "I am A forty-year-old".
"A five year old boy" is correct English, but in formal writing it is standard to put hyphens between the words that form the adjective for clarity - "A five-year-old boy".