Just to clarify a few things, Spring Boot does not force anything, it provides dependency management for a version of ElasticSearch. To make sure things are consistent and you don't end up with mixed version of elasticsearch modules, dependency management is provided for all modules.
As with everything in Spring Boot, if you choose to use dependency management and you don't want to use the version chosen by a Spring Boot generation you must set the relevant property (here elasticsearch.version). Alternatively, and in particular if you import the spring-boot-dependencies bom rather than extending from spring-boot-parent, you must provide dependency management for all modules rather than hardcoding the version of a couple of them as shown above. Doing this will force a version and left the default of other modules to 6.4.
Another thing to point out is that this mechanism has nothing to do with Spring Boot 2.1 per se. It's just we started to support the high client and therefore provided dependency management for it.