Wow! Thanks for all your input/energy on this post!
Lol, you guys are all correct :), I do think that frameworks should be more backwards compatible. It is true that I should use git and believe me "I do," but for a project I was working on, this one... I did not push it yet, that was my bad! None-the-less, it is quite important to be backwards compatible. Sorry @taylorotwell, it is not your fault, we have all been contributing to the big mess of backwards compatibility :(.
See this Wikipedia article:
https://en.wikipedia.org/wiki/Backward_compatibility#:~:text=Backward%20compatibility%20can%20be%20used,value%20of%20supporting%20older%20software.
Although functionality (INTERNALLY) might change, we should do more to keep things working even when the way things work inside change. Also, it might be a SMART idea to include a feature to add a change and then add a switch that can turn on/off a new package that was introduced.
Similar to a version control system, their could co exist a version control like library that could allow versioning of builds on a development level, not a GIT level, but similar, maybe even use git to do this for us in the background on another specified path to backup all things before running a package install, either through composer or artisan commands.
Guys/Gals, what I see in the big picture is that when working on LARGE projects, whatever you interpret as LARGE, being able to easily upgrade to the latest releases (versions) should be able to do so without having to refactor(re-code) your projects. The TRUTH is that when a feature that was popular is just removed or is changed (DRASTICALLY) then you are faced with a decision to DROP the current framework, or write/hack your own version to work with your existing system (usually a project that grows becomes more of a system than just a project). We/Company's/Bosses' all want to be able to use that latest feature, but when faced with constant upgrades and issues with backwards compatibilities it is so hard to do so. Should it be this way? Taking a look at this article https://medium.com/ironkeel/breaking-backwards-compatibility-81c7986f234b we/you/me find it a problem to have to always be chasing the updates and keeping our System relevant with today's standards and technologies.
I, for one, think that being relevant without having to rewrite layers(changing code everywhere) of code, but having procedures/rules in place that would allow even older code to conform to new changes, via interfaces, is not only ideal but a necessary evil (must be implemented to save the hell that follows with upgrades/updates) and possibly even be the right thing to do (the way to go) moving forward.
Of course, I am only one person, but I think that many of you share some of the same sentiment mentioned above.
What are your guys/gals thoughts? @jeffreyway, @taylorotwell, @everyone!?