@codeDude Early in my career, I developed software in Java, which doesn't support multiple returns.
So in postgrad, when I saw Python examples with multiple returns, I clutched my pearls big time. :P
My tutors said that multiple returns are acceptable. I took their word for it, and occasionally use them, but I still prefer to avoid them.
For example, if there's a sprawling function littered with disparate and unrelated exit points, a rethink might be necessary.
@codeDude if you are into mathematically proving algorithms by hand, or if you want to make it easy to add code that runs each time after a function was called, you really benefit from it. It makes it easier to spot edge cases, too. On the other hand the reader has to deal with additional nesting and some people get confused by it.
I personally prefer nesting to multiple exits. But I have to obey the company style guideline.
@codeDude
The "single return" is a relic from languages that require manual resource cleanup. For those, it's a good idea to have a single return and all your cleanup just before that.
If you write code that doesn't need manual cleanup (and you should), feel free to trash that "law". It results in very ugly code IMHO...