Да, без проблем! Я часто именно так и делаю. Все равно используется рефлексия, что в аннотациях, что при конструировании напрямую.
За аннотации - можно аннотировать все что угодно, хоть класс, хоть параметр, хоть функцию.
Без аннотации - нужно придерживаться какого-то интерфейса, особенно, если функции - классы, а так - все едино.
PS. Собственно в конце статьи и указано практически тоже самое
Абсолютно бесспорно, что данную задачу можно решить множеством других путей. Да, всё что можно сделать при помощи аннотаций/рефлекций можно сделать и без них, вопрос лишь в удобстве, оптимальности и размерах кода, конечно же, совать Аннотацию везде где есть малейший намек на то, что получится её использовать - тоже не самый рациональный вариант, во всем нужно знать меру =). Но при написании API, Библиотек или программ, в которых возможно повторение однотипного (но не совсем одинакового) кода, аннотации - бесспорно оптимальное решение.