A parte de lo que te indico el compañero muy acertadamente.
respondiendo tu pregunta
Cita: o en el caso de SMARTY_BASEFILE por qué considera include
El hecho de que te muestre el include en ambos casos es que el valor de una constante no varía a lo largo del script, de hay su nombre.
Es decir una vez ha sido definida, su valor se va ha mantener a lo largo del Script.
Por lo que APP_BASEDIR simple va a tener el mismo valor dentro del Script.