Если говорить про персональные компьютеры, к которым я бы отнёс и смартфоны, то, на мой взгляд, проверка выделения памяти для объектов, меньше ~10-100 Мегабайт, является бессмысленным усложнением. По опыту скажу, что при заканчивающейся физической памяти, аллокатор не возвращает NULL, а выводит ОС в состояние длительного обмена данными с накопителем. Не знаю, как на Windows, но на Mac OS X и GNU/Linux, при засбоившей программе, выделяющей память, компьютер вместо аварийного завершения программы, продолжает выделять память и перестаёт отвечать на запросы пользователя и единственный гарантированный способ привести его в чувство - это сброс. На iOS я выделял кусками около 8Gb памяти при наличии 1GB физически, после чего приложение падало на системных библиотеках вне зависимости от наличия проверок в вашем коде.
Более того, уже в документации malloc для GNU/Linux написано прекрасное. Оцените юмор:
> -- Цитата:
> By default, Linux follows an optimistic memory allocation strategy.  This means  thatwhen malloc() returns non-NULL there is no guarantee that the memory really is avail‐able

Если говорить про микроконтроллеры, где ограничение действительно работает, то и там каждая проверка в большинстве случаев избыточна, так как многие приложение должны быть составлены так, чтобы памяти гарантированно хватило.