>> and CurvePreferences to avoid unoptimized curves
The key word being unoptimized. In the article, the code snippet has a comment "Only use curves which have assembly implementations" and he mentions that "a client using CurveP384 would cause up to a second of CPU to be consumed on our machines." (presumably because it does not have an assembly implementation)
> Programmers should not need to know this stuff.
It can sometimes be a sign of a leaky abstraction, but programmers might need to know the performance characteristics of the code they write.