Not sure what you mean exactly by "does angular unbind all elements from step1" but what AngularJS is going to do is to destroy a scope created by the ngSwitch
directive (plus its children, thus destroying any watches created in the step1) and remove corresponding DOM elements. If you don't use any badly-written directives that could leak resources in the step1.html
AngularJS should clean up DOM elements and the corresponding watches.
The answer to your second question is YES.