There are two things I highly recommend: attending the night before dinner and staying with a resident.
If you give off good vibes to a resident, he/she can go to bat for you. At the end of the interview season, most programs will solicit feedback from residents. Who they really liked, who stood out as a complete jerk, etc. They also solicit feedback from the secretaries, so make sure you're nice to them.
Is the night-before dinner required? No, absolutely not. If you explain to them that it was going to cost $500 extra to fly out 1 day earlier, I'm sure the PD and the residents will understand. You will also have an opportunity to meet some residents throughout the day or at least during lunch, if the program provides a joint resident-applicant lunch.
Some programs take applicants to very nice restaurants and spend a fortune on pre-interview dinners (mine included).
Oh, and I agree that it's bad form to say you're coming and then cancel.