Oh, absolutely. I have a long history of preferring code to be safe rather than fast[1]. In this case, for any project I had a say in you'd have to convince me with concrete measurements that this particular loop was on the critical path, and then you'd have to write a dozen tests to convince me that it was being used right without the terminal check, and that any future users would get unambiguous errors in debug mode. And after all that, you wouldn't be allowed to claim that taking away one of the conditions is "tasteful".
I actually tend to be pretty lax about coding style, believe it or not. But dereferencing NULL is undefined behavior.
Instead of one variable allocation and one test in the loop, your version has one allocation and TWO tests.
Adding weight in loops has a major performance impact.