Это выбор, конечно. Остерегайтесь абсолютов и догм как в программном обеспечении, так и в жизни.
Spring имеет множество встроенных зависимостей. Примите их.
Что делает Spring, так это дает вам большой выбор. Когда вы решите использовать общие технологии, такие как JSP или Velocity, Spring предлагает отличную поддержку. Если вы не хотите полагаться ни на один из них, во что бы то ни стало напишите свой пользовательский интерфейс с точки зрения необработанного HTML, CSS и JavaScript. Это твой выбор. Весна ничего не требует.
Я не думаю, что критика обоснована. Spring позволяет использовать JDBC или Hibernate. Это неправильно иметь зависимость от Hibernate? Если вы говорите да, не используйте его. Это твой выбор.
UPDATE:
Если вам нужен один правильный путь со всем, попробуйте Grails. Он основан на Spring и Hibernate. Много вариантов сделано для вас. Это похоже на Ruby on Rails, за исключением того, что он использует Java, Groovy, Spring и Hibernate.