I haven't found anything in the spec mentioning whether it is possible to rebuild programs e.g with different options or for other devices after they have been build the first time.

Have I overlooked something or is it obvious that its possible since its not specified explicitly? I had the feeling that subsequent builds with other options were simply ignored (release+create new program from source worked of course but is not really "clean").