1. Квадрата (ромба) там нет. (есть вычисленные значение, но здесь приводить не буду т.к. полный цикл 365 строк, могу скинуть в личку)
2. Это скорее всего и есть алгоритм Брезенхейма, только адаптированный для окружности.
3. А самое главное, в HID report-е передаются не координаты, а смещения относительно предыдущего положения. По сути - Брезенхем :), только предыдущие координаты отрезка, драйвер HID уже знает :) Вот по этому и получается окружность.
ЗЫ Хотя ReAl прав, на CORDIC больше похоже.