オブジェクトを明示的に割り当てて初期化することをお勧めしますが、次の例の NSDate のインスタンスに必要ない理由がわかりません。
NSDate *now = [NSDate date];
これと同じように見える...
NSDate *now = [[NSDate alloc] init];
日付クラス メソッドがヒープにスペースを割り当てると仮定しますが、Apple が実際にメソッドを実装した方法ではなく、NSDate.h しか見つかりませんでした。
Apple のドキュメントには、「このメソッドは、クラスのデフォルトの初期化メソッドである init を使用する」と簡単に書かれています。