Полной поддержки нету.
По первому пункту вам пригодится метод TControl.ParentedVisible. Он проверяет по дереву вверх от текущего контрола, не скрыт какой родитель (проверка только на Visible)
Остальные придется реализовывать самостоятельно. Так как это не тривиальная задача и доволно трудоемкая по выполнению. Здесь много условий, которые могут повлиять на конечную видимость контрола:
Прозрачность
Клиппинг
Видимость всех конролов по цепочке вверх (родители)
Возможность перекрытия контрола контролов другой ветки контролов.
Самая дорогостоящая операция номер 4. Ну и как понимаете, если на каждый чих проверять и пробегаться по всему контролам формы, то это будет очень медленно, а кэширование результатов приведет к сложной системе уведомлений между всеми контролами.