I think one thing you should keep in mind is that 301 is meant for content being moved. In other words moving one page from one site to another, or from one path to another, without changing the content of the page. If you move a page you use 301, google see the change and discount a small portion of the page juice (1%? 5%? no one knows exactly) but pass the vast majority to the same page on the new location.
But... Once upon a time a popular black hat technique was to get control of a page (actually many pages, as many as they could) with a good juice and do a 301 redirect to another page, a target page, to just pass juice.
So... Google, wearing its shining armor, decided to fight back, and changed their algorithm to penalize that, in other words if you do a 301 redirect from one page with a certain content to another page with a totally different content, google notes that, doesn't like it, and penalize the ranking of the target page.
Exactly how much of the two page content should stay the same to pass google antispam rules nobody knows, you can find out running some tests, my guess is probably it's also very specific to the page, domain, authority, etc...
I heard, but I never tested myself, than if you do a 301 redirect from one page on a domain or path, to the same page on a different domain or path, and slowly in the following months you change the content of the target page till it's completely different from the original, Google won't penalize you.