Ответы:
Документы для render()объяснения довольно хорошо:
Эта функция визуализирует элемент с помощью drupal_render (). Элемент верхнего уровня отображается с show () перед рендерингом, поэтому он всегда будет отображаться, даже если для него ранее использовался hide ().
render()в основном это просто оболочка, за drupal_render()исключением того, что он гарантирует, что переданный элемент настроен для отображения при передаче через drupal_render().
Это также гарантирует, что переданный элемент является массивом (который drupal_render()может принять все ). Если это не так, элемент возвращается обратно как есть. Так что это обеспечивает немного безопасности, если хотите.
Если по какой-либо причине у вас есть переменная, которую вы хотите визуализировать, и вы не знаете, является ли она строкой или массивом визуализации, вы можете передать ее напрямую, render()не проверяя тип переменной самостоятельно.
Для некоторых реальных примеров подобной ситуации есть список вызовов, которыеrender() вы можете просмотреть.