Ok, retesting with Michael's suggestions:
List with 200 elements, Grouped by 2
(setq a '(0 1 2 3 4 5 6 7 8 9))
(repeat 20 (setq lst (append a lst)))
Benchmarking ...............Elapsed milliseconds / relative speed for 4096 iteration(s):
(GROUPBYNUM_MAC3 LST 2).....1482 / 2.04 <fastest>
(WIZ-GRP LST 2).............1872 / 1.62
(GBN_EV LST 2)..............1950 / 1.55
(GROUPBYNUM_MAC2 LST 2).....2028 / 1.49
(SPLIT_GILE LST 2)..........2215 / 1.37
(GROUPBYNUM_MAC1 LST 2).....2262 / 1.34
(GROUPBYNUM_VK LST 2).......2496 / 1.21
(GBN_AJT2 LST 2)............2902 / 1.04
(GBN_AJT LST 2).............3027 / 1.00 <slowest>
List of 200 elements, Grouped by 5
Benchmarking ...............Elapsed milliseconds / relative speed for 4096 iteration(s):
(GROUPBYNUM_MAC3 LST 5).....1201 / 2.09 <fastest>
(GROUPBYNUM_MAC2 LST 5).....1388 / 1.81
(GROUPBYNUM_MAC1 LST 5).....1482 / 1.70
(GBN_EV LST 5)..............1498 / 1.68
(WIZ-GRP LST 5).............1498 / 1.68
(SPLIT_GILE LST 5)..........1591 / 1.58
(GBN_AJT2 LST 5)............2106 / 1.19
(GBN_AJT LST 5).............2122 / 1.18
(GROUPBYNUM_VK LST 5).......2512 / 1.00 <slowest>
List of 200 elements, Grouped by 20
Benchmarking ...............Elapsed milliseconds / relative speed for 4096 iteration(s):
(GROUPBYNUM_MAC3 LST 20).....1045 / 2.40 <fastest>
(GROUPBYNUM_MAC2 LST 20).....1092 / 2.30
(GROUPBYNUM_MAC1 LST 20).....1139 / 2.20
(SPLIT_GILE LST 20)..........1263 / 1.99
(GBN_EV LST 20)..............1295 / 1.94
(WIZ-GRP LST 20).............1357 / 1.85
(GBN_AJT LST 20).............1732 / 1.45
(GBN_AJT2 LST 20)............1747 / 1.44
(GROUPBYNUM_VK LST 20).......2511 / 1.00 <slowest>
Hopefully this is a more rounded test.