I'm all for enhanced security - as long as it doesn't come at the cost of performance - but my gripe is that (to date) I've yet to see anything anywhere near as thorough as Titanium Backup when it comes to maintaining the same configuration and experience when either resurrecting a current device that needed to be reset, or migrating to a new one.
My limited experience on Marshmallow, back when I had a Nexus 9, was slightly frustrating in that external storage was not easy to access, but I do like the idea of security enhancements. Everything I've read in every forum on any device I have owned or shown interest in lately, has indicated that battery life has suffered after the person updated to Marshmallow from Lollipop, save for a few who completely reset their devices afterward. Which, I'm of the opinion should not be required to achieve or maintain decent battery life.
Yeah, Titanium Backup is a great tool... I've been using it for years. But I will say that once the application developers finally include the new 6.0 backup API into their apps, that restore is going to be substantially more complete. I've checked it out a few times and if all the apps bought into the new model, I wouldn't have to use TB for anything. Now.. granted, the SPEED here is still an issue... It takes a long time to pull all those apps, and their app data, from Google's servers... What I've been doing is have a good backup set from TB, and once the restore portion dumps out to the home screen, I stop the Play Store restore and just use TB to pull in my user apps.
What I would kind of like to see is an option to do the restore a little differently. If you do the restore on 6, AND you use the Google Launcher, when it drops out of the Restoring window and you get your home screen with all those grey placeholder icons... Stop there, or give the user the option to halt the restore (or a list of apps that you want to pull down immediately). The apps you don't select stay as ghosts, then when the user clicks on one of those ghost icons, it goes and pulls the app and app data down.
As for issues related to upgrades, this is a tricky thing. I've been in software for a really long time and upgrades are often the bane of our existence, espcially major full point updates, which often pull in substantial core changes... completely overhauled API updates, changes runtime libraries, etc. Taking data from an old version and pulling it to the new version is usually one of the biggest challenges to any project I've worked on.... and more often than not, one of the biggest sources of field issues post-release.
So any time I've had a major upgrade, I keep it on a short leash.... if I start to see things so south, FDR.