Проверять данные в каждом методе - это вполне отличная практика, по сути это соблюдение интерфейса метода.
Но возвращать при этом null/false - практика хреновая, если ваш метод на вход требует int, а получил array - надо бросать исключение. Так вы будете знать, что внешний код, который использует ваш метод работает не корректно.
Для объектов настоятельно рекомендую использовать type hinting:
public function test(MyObject $object, $id)
{
if (!is_int($id)) {
throw new \InvalidArgumentException('Argument "id" must be int');
} elseif ($id < 0) {
throw new \InvalidArgumentException('Argument "id" must be positive');
}
...
Если пишете на семерке, то и для скаляров и на вывод - тоже стоит указывать type hinting. Правда с выводом не всегда это можно делать, например возврата null, или что-то еще.
public function checkPositive(int $intData): bool
Для сокращения проверок можете мой пакет заюзать
https://packagist.org/packages/ko-ko-ko/assert, он спроектирован под максимальную производительность и использование в каждом методе.
Стоит ли продолжать заморачиваться с проверкой передаваемых данных в каждой функции?
Да. За счет этого вы выигрываете в безопасности, надежности и времени поиска багов.