The question of how to deal with derivative work has always been difficult. In the past there have been a few cases where there was (potentially) unfair competition because different versions of the same program entered a competition.
Unfair?
Unfair advantage? Using available knowledge is unfair? Everybody should reinvent the wheel? Where does it stop?In an ideal world, everyone plays fair and uses common sense to decide when a program is derivative work. No problems there. In a world where some are tempted to foul play things get ugly very quickly. I think it will turn out to be very hard to guarantee that nobody gets an unfair advantage.
I think the purpose of the division is to distinguish between a fair competition which is designed to show what program is currently the strongest program under certain preset tournament conditions
Fair?
and between a competition where the purpose is academic to test your program against a variety of other programs, possibly a variety of derivations of other programs under a variety of tournament conditions.
Unfair then?
Fair and equal?If you wonder why such a division is necessary, consider then that some are making a living out of Go programming and that their reputation is of commercial interest to them. Obviously it's not beneficial to a program's reputation if it loses in a competition. So those programs will only enter if the conditions are fair and equal to everyone and when they have something to gain by entering, either money-wise or reputation-wise.