> The above observations regarding moral rights imply that putting code under an ISC or two-clause BSD license essentially makes the code as free as it can possibly get.
Emphasis on: or two-clause BSD license.
That said, the ultimate recommendation on the page is ISC, but only because:
> The ISC copyright is functionally equivalent to a two-term BSD copyright with language removed that is made unnecessary by the Berne convention.
The OpenBSD project uses the "and" wording, whereas the license text on the OSI website uses the "and/or" wording.
Given all this, it seems to me that recommending the 2-clause BSD is the most straightforward option, because its only (and innocuous) issue is that it contains some no-longer-necessary language after the Berne convention agreements.
[1] From Wikipedia: When initially released, the license did not include the term "and/or", which was changed from "and" by ISC in 2007. Paul Vixie stated on the BIND mailing list that the ISC license started using the term "and/or" to avoid controversy similar to the events surrounding the University of Washington's refusal to allow distribution of the Pine email software.
ISC isn't perfect but it's a far better license than BSD.
Choosing between BSD/ISC/MIT is essentially just choosing which phrasing you like best; the basic idea is the same. Almost all arguments in favour or against the 2-clause BSD license also apply to the ISC license, and vice versa.
Under the BSD license, what requirements exist for redistributions that are neither source nor binary in the regular meaning of those terms?
Presumably there ought to be one, but... the license doesn't say.
What about redistribution of the product of macros/meta programming? Redistribution of the assembler output?
Thought experiment: I publish a library in which the .c file is released as public domain but the .h file (which has no function definitions, `static` or otherwise, and had no function-like macros) is released as BSD-2.
The header file will essentially disappear during compilation. You cannot make a .o out of such a header; there is no binary format of it.
Is the resulting binary covered by the BSD license?