Even already programming with java 8, functional programming still sounds strange to me. How does the book address programming techniques applied to the new features of Java 8?
The book is not about Java 8. It uses some Java 8 constructs, such as lambdas, but it is not about Java 8 new classes like Optional, Streams or CompletableFuture. It is about understanding functional techniques, and it is based upon the construction, through incremental exercises, of a functional library that includes equivalent (but more functional) classes. There is however an appendix about Java 8 structures and how they compare to the structures developed in the book.