It's still not best practice to handle bulk URL changes in that way, yes large sites do it that way but they are doing it the lazy way. There are of course instances where 301's make sense, but then there are also other ways to handle expired content that are often overlooked also, 410's 302's etc.
There should be a proper logic set-up as to how to handle content, whether it has temporarily moved, been deleted, expired etc. Most large CMS and eCommerce platforms handle it by default incorrectly and just use 301s as their default, if you have any control over it then try and avoid internal redirects, especially if the site is a big one.