All the factors you stated are contributing, additionally the two biggest factors are weight gain and certain pharmaceutical medications can cause this as well. Fortunately weight loss will reverse most of the loss in length. It sounds too obvious but it is true. I have suffered the same result. But it is not something that cannot be overcome.
I'm optimistic that continued exercise along with certain supplements like "Spermidine", vascular supplements, and "Shilajit" resin will aid in restoration.
Hope that helps!
Best fortunes!
I've actually had this same problem, it used to be right at 8 inches, but it had a decent curve to it which I hated. Its lost about 2-2.5 inches (it varies oddly enough), I'm embarrassed now, it's not really small but still it used to be so much bigger. Anyway, I'm trying a transaction device, used it about 2 weeks and it seems like it may be working. But it's hard to tell.
I too used to be at approx 7-7.5 inch in length and over the years I have also seen a 2 inch reduction. According to my research contrary to medical opinion, your penis can shrink in size as your body stops or limits the amount of dht produced, this is what is responsible for penis growth, I have also found the reduced blood flow can also reduce size. This Can be caused by anemia, alcohol and smoking. You can have your testosterone tested and make sure levels are ok. If not the good doctor should be able to prescribe some topical dht. Apparently this makes it grow although I have never tried it personaly my research sugests it works great. I have found great success in regaining my previous manhood using penis weights. I hang some steel balls using a special penis weight device. I have rgained almost 2 inches in 6 months. It's very easy and can be worn under ur briefs for 8-10 hours per day, I do 3 days on 1 day off then 2 days on 1 day off then Repeat. It works for me and has worked for many more. There are penis enlargment forums that discuss weight hanging just google it. If you want any more info dont hesitate to message me.
Hope this helps.