Не максимум. У atmega328p есть 16-битный Timer1, которым можно управлять и выдавать настоящий 16-битный ШИМ.
Согласен, но на этот таймер, как я понял, завязаны функции времени из стандартной библиотеки, и манипуляции с его настройками приведут к некорректной работе этих функций. Для моих целей это не подходит. Но в теории - да, есть. Не только в atmega328p, например, из документации к ATmega32u4 (на которой сделана моя Arduino Leonardo):
– Four PWM Channels with Programmable Resolution from 2 to 16 Bits
– Six PWM Channels for High Speed Operation, with Programmable Resolution from
2 to 11 Bits
Вот, оказывается, 10 бит - не максимум и в моем случае

Правда, 11-ти битный режим уже не сможет обеспечить приемлемую частоту, скорее всего.
Вы же сами двумя строками выше привели ссылку на библиотеку, которая позволяет это реализовать

На самом деле, хитрости вообще никакой в этом не увидел - это всего лишь 2 строчки кода в скетче. В интернете масса статей на эту тему, например:
http://mypractic.ru/urok-37-shirotno-im ... duino.html
Причем эти две строчки явно работают. Это видно визуально (частота, разрядность) и даже слышно - дроссели в БП пищат на частоте ШИМ. Разумеется, на 15 кГц их слышно только если поднести ухо к БП, зато 4 кГц слышно просто великолепно.
Да и в 10-битном режиме, с тактовой в 16 МГц вы 3.9 кГц получите, а никак не 15.
Честно сказать, не силен в теоретической части, но практика говорит об обратном. Как я уже писал выше, в режиме 4 кГц писк из БП слышно отчетливо. Ради интереса я нашел в интернете генератор звукового сигнала заданной частоты, вбил туда 4 кГц, и услышал тот же звук, что из БП. При этом режим 15 кГц слышно только вплотную к БП, 31 кГц не слышно вообще по понятным причинам.