Why is it that if someone on a team requests dates of unavailability, the scheduler does not honor these and still schedules them?
The program does honor can't serve dates for individuals who are on a team if a schedule is already created. It is important to keep in mind that if your teams are setup on a fixed rotation, they are placed on the schedule outside of the auto-scheduler. The moment you hit "Create..." and VSP generates the schedule skeleton, all team assignments are placed right on that skeleton. So everything is unfilled, except preassignments and rotating teams.
Can't serve times should be entered before you create a schedule. If you create a schedule today, your teams are all assigned. If someone on a team tomorrow submits a can't serve date, it has no effect because they are already on the schedule. For this reason, it is a good idea to let the volunteers know of the cut-off date for submitting changes to their profiles, and make sure that the schedule is not created until after that cut-off dates.
A helpful tool here is the Conflict Report. You can run this report and VSP will catch any conflicts between volunteer profiles and assignments. For example, I am on a rotating team, and you create the schedule today, so I am assigned with my team. If I submit a can't serve time tomorrow, that does nothing to the existing schedule, but my can't serve time is still recorded in my profile. From the open schedule, click on the Reports menu and select "View Scheduling Conflicts..." and VSP will alert you that based on my profile as it is now (with my can't serve time entered) there is a conflict. This way you can manually manage these issues.