I recently bought my son a Betta fish and when I changed his water, each time I noticed a small red spot where his tail connects to the main portion of his body. It looked like blood and after being in the new water a while would go away. Then, after about 3 weeks, one day, his tail was simply gone. Like it had fallen off or something. Everything I see online about tail/fins infers bacteria issues and "rot" but his tail was literally there one day and not the next. My questions are...

Could this just be stress-induced?
Will it grow back?
Should I treat him with medications as if it is an infection of some sort?

Aside from putting him in a larger tank and only doing a partial water change, I am not sure how to make tank cleaning any less stressful for him. He came from WalMart and is not a terribly brightly colored fish, mostly white with some flecks of color. Is it possible he was ill when we picked him out?