setup is where all of the templated event bindings are bound. This happens immediately before init, so by the time you modify options the events are already bound.
Control does have an on() method which will rebind event handlers, which is what you need to do in init after you modify options.
And yes, for RequireJS and Steal, you need to include those models in your Control's code and then specify a default for that Model. So:
- define(['can', 'myModel'], function(can, myModel) {
- return can.Control({
- defaults: {
- model: myModel
- }
- }, {
- "{model" created": function() {}
- });
- })