It'd be great if I it were wicked easy to rollback a "recently" submitted changelist (where recently means revisions generated by the changelist are still the head revisions, and has no bearing on time passed). A 'p4 rollback' command should look at each action, and create a changelist with an equal and opposite reaction. Rollback contents for edit and integrate actions, undo moves by moving back, recover deleted files, delete branched files.
For extra credit, adjust the merge credits for 'integrate' actions to reflect the fact that a change has been rolled back. Or not!
If the changelist is no longer "recent", just warn the user and a) bail, or b)
Don't let "perfect" be the enemy of "good enough" here. We don't need to solve all the edge cases (e.g. what to do with a non-recent changelist). Solve the easy ones and deliver a "good enough" feature, and leave "perfect" for a future release. I want a basic rollback NOW. :)