1. Ten common mistakes made when using Functional Java are: doing too much in a single lambda expression, mutating objects, returning streams instead of collecting them, not consuming streams, overusing forEach, incorrect order of stream operations, infinite streams, unpacking Optionals incorrectly, not handling exceptions properly, and not using alternative flows for Optionals like orElse and orElseGet.
2. Some ways to avoid these mistakes include breaking lambda expressions into smaller functions, returning copies of objects instead of mutating, collecting streams after operations, consuming all streams, using intermediate and terminal operations appropriately, and wrapping checked exceptions.