And I'm sure there are performance and/or compatibility scenarios where SHA1 or MD5 is preferable to more modern algorithms when you don't have any security considerations.
It comes down to fitness of purpose. In many case, a CRC-32 check is sufficient, let alone a MD5 hash. For McCorry or someone like him to claim that a hashing function shouldn't be written because it doesn't do what HE wants to do is not only short-sighted, it is pretty egotistical. His purpose and your purpose may be totally different, and he does not know your purpose.
Additionally, while there are examples of intentional collisions for both SHA1 and MD5 there has yet to be an example of a simultaneous collision for both. If I give you a file, and supply you with both the SHA1 and MD5 hashes, you are going to be very hard pressed to create a new file that has the same hashes. To that end, with both SHA1 and MD5 being so computationally inexpensive to generate they still have a viable role to play in modern computing -- they just shouldn't shouldn't be relied upon individually in a security context.
It took Google and researchers YEARS to create a single intentional SHA-1 collision, and they could control and modify both files until they got it. Yes, it proves the theory that an intentional collision is possible, but collisions are mathematically possible in ANY hash.