No, according to Google, 301 redirects cannot always pass all PageRank between URLs. Each redirect loses a tiny bit of the original PageRank.