My personal rule of thumb - as few redirect jumps as possible. Three main reasons:
1. User journey + Browsers - Sometimes when there are too many redirects taking place, some browsers find it difficult to follow through and would simply not load the page. Also, even if there were only 2-3, the browser may load, but users on slower connections may find it tiresome waiting for content to load.
2. As ThompsonPaul highlights, you COULD lose some link value due to dilution through 301 redirects.
3. Multiple 301 redirects are often used by spammers and I foresee in the near future these causing a lot of ranking headaches. The older the site, the longer the chain might end up - for example, imagine you had a product at:
https://domain.com/product1
Links to that page exist at domain.com/product1
The journey would be: domain.com/product1 >http://domain.com/product1 > https://domain.com/product1
Now imagine a year down the line, product 1 is discontinued and you decide to redirect https://domain.com/product1 to domain.com/product2
Imagine your journey now:
domain.com/product1 >http://domain.com/product1 > https://domain.com/product1 > domain.com/product2 >http://domain.com/product2 > https://domain.com/product2
This could carry on indefinitely in the lifetime of the site...
Best solution: Decide what version of the site you want to use and simply try and use only one redirect, not a chain. Periodically check for chained redirects and resolve as you go along. (I try and do this bi annually).