I think perhaps the reason that these have become known as "idioms" is that in older programming languages, there really are idioms. For a classic example, in C we have:
for (;;) {
}
to mean an endless loop. This really is an idiom - to people who've "grown up" with it, it says "endless loop" as clear as day, but for everyone else it just looks odd. And C programmers who know the idiom don't tend to look down on someone who instead uses: