Honestly, the masteries of late are all about increasing damage or shields and sustain. There used to be interesting masteries that reduced AoE magic damage, reduced crit damage, gave a % of bonus armor/mr depending on which you had more of, reduced damage from CC'd targets, etc, etc. Now all of the masteries are either damage or shields/heals. Even one of the tank keystones gives more damage (Grasp of the Undying). That's not to say that I don't think tanks should deal damage, but that so many options have been removed. Common masteries include Recovery (heal), Tough Skin (actual tank mastery), Runic Armor (look more heal/shield), Insight (literally nothing to do with tankiness), Swiftness (doesn't reduce damage even though Tenacity/Slow Resist is nice), Courage of the Collosus (a giant shield). Literally one thing in there reduces damage, and the rest are shields/heals.
The problem with shields/heals is the same as with drain tanks: you either burst them down, or they outsustain and kill everything. This is a major design problem. Tanks should be pushed into damage reduction, not heals.
Another part I want to point out is the Season 6 changes to tank items. They took 15 MR off of Spirit Visage and 200 health off of Banshee's Veil in exchange for more heals and a lower cost. This season, we took out the damage reduction from Aegis and added, you guessed it, more shields and heals with Redemption. The support itemization has been given heal/shield power for more heals and shields.
More heals and shields sounds like it could add interesting gameplay, until you consider that damage has also been creeping steadily. The only actual places where damage has gone down recently is Fervor of Battle, the replacement of armor pen with Lethality, and a while back the lowering of the damage on Iceborn Gauntlet. Everywhere else, systems have increased damage. The problem with this kind of design is that it's incredibly binary. Either you can outdamage the heals and shields, or you can't. Either you can outdamage the enemy, or you can't. Either way, one side is blowing up and the other is going back to full health.
I don't mind tanks doing relevant damage; in fact, I think every class should do some damage. If a squishy champion takes a full spell rotation or two of an enemy tank, they should die. They're not supposed to be the tank, they're supposed to be the backline. The problem really is that squishies are glass cannons. ADCs are more problematic in my opinion, because they have so much sustain as well. This pushes the only counterplay to ADCs to be to delete them, since they'll just be a drain tank otherwise. This kind of design is not even remotely ok for either side. ADCs should not be deleted, and they should not act as drain tanks either. What we need is a carry class that can afford to build one tanky item and not have access to so much sustain. There also shouldn't be damage reduction like on Phantom Dancer or Exhaust, since it renders assassins essentially useless. ADCs should have teammates that take damage for them, not make assassins deal no damage due to stacking passives. They should also provide more than just damage. Jhin is an excellent example of a well-designed ADC. He has clear strengths and weaknesses, has a ton of clarity for his abilities, and provides some utility in addition to damage. He's not the kind of champion that just stacks Phantom Dancer and lifesteal and just draintanks literally everything (unlike a certain champion named Graves). He doesn't delete people out of stealth while also having incredible self-peel (Vayne). He's strong in lane, but he actually needs to get close enough to be engaged on and doesn't remove all agency from his enemies with his traps (unlike Caitlyn).
Regarding assassins, they should actually have clarity and have a wide enough burst window that enemies have a chance to react. Zed was a great example of this, having to use his ult with a delay on damage to finish off his enemies. Champions like Rengar (as much as I find him to be fun) are complete bullshit in that they just jump out of stealth and delete an enemy's health bar in under a second. Or you have champions like Fizz that need to be kept shut down the entire game or they snowball out of control and kill everyone. Assassins and divers should be able to pick out a squishy target and either kill them or get them low enough that they have to play too passively to do full damage for the rest of the fight. Assassins shouldn't get absolutely deleted, but they should die quickly if they get focused by more than just one person. The passive that was briefly on Youmuu's that blocked one basic attack was an awesome idea in my opinion. It blocked damage from the target the assassins was trying to kill while not making them unkillable. The new Edge of Night is also a good idea and provides a similar function while also helping the assassin avoid crowd control. Assassins shouldn't be 100% reliable though and should be fairly limited when they can't unload their combo. Their team should be at a disadvantage until they make an opening for the assassin to take out a squishy. In the assassins place, a mage could provide AoE damage and CC and help their team out that way instead. Assassins should also be strong enough in lane that they don't get poked out by the mages they should be laning against. They shouldn't bully the enemy mage out of lane either, just be strong enough that they can get items and spread pressure around the map. Leblanc is really dumb in this sense, because she often just bullies the enemy into submission and then falls off late game. Assassins should be useful at all stages of the game and shouldn't rely on feast or famine gameplay like they do now. Enemies should be able to shut down fed assassins and assassins that are behind should still pose a very significant threat.
Alright, that's enough for my giant wall of text rant.