ох, сразу много плохо определённых терминов.
что такое "инкапсулирующий что-то"? инкапсуляция — это соединение кода и данных. VO/DTO содержит только данные, он ничего не инкапсулирует
Допустим у нас есть VO DateRange, тогда у него может быть метод bool intersects(DateRange). В таком случае он(метод, а следовательно и VO) будет скрывать в себе информацию о том, как определять пересекаются ли диапазоны дат.
Если говорить про инкапсуляцию как защиту от переходов в непредусмотренное состояние, тогда по идее тоже может, например VO Money может иметь проверку в конструкторе, что деньги не могут быть отрицательным значением.
А "соединение кода и данных" - это как-то непонятно 🤔