Well, unfortunately, as far as legislation goes in some places in Europe, all account data has to go when a user cancels--including the user's posts, pics, etc. This certainly poses a problem for forums, as every time a member cancels, a lot of threads could become meaningless, or be deleted entirely (if user in question is the topic starter, for example). Given that some markets do not require this (for now), this could be an optional feature (e.g., "enable account cancellation?").
An even better version of the above feature would be to "suspend" the user who decides to cancel for 30 days (the number of days being an Admin choice), thereby "hiding" all of the user's content for 30 days. At the end of this period, the user and his content gets completely removed from the system--no return. This, with the appropriate warning to the user upon canceling the account (your account will be temporarily suspended, making all of your data unavailable to the public... at the end of this period your account and contents will be deleted). This would add more security to the site owner in case of conflict, and, should user change his mind about canceling, he would have the opportunity to "make up his mind" (like a cooling off period).
To most forums this might be an overkill, but, in some instances, it may be necessary. I am building a student community, and would certainly want to keep a member's data for 30 in case they did something stupid and decided to "run".