I realize this question is quite old, but I just solved this problem today with a JQuery-based approach.
jQuery( function() {
jQuery("#commentform").attr("data-parsly-validate", " ");
jQuery("#commentform").parsley();
jQuery(".comment-meta-header .comment-reply-link").click(function(){
jQuery("#commentform .comment-form-area, #commentform .comment-form-type").hide();
jQuery("#starling-comment-area, #starling-comment-type").removeAttr("required");
});
jQuery("#cancel-comment-reply-link").click(function(){
jQuery("#commentform .comment-form-area, #commentform .comment-form-type").show();
jQuery("#starling-comment-area, #starling-comment-type").attr("required", " ");
});
});
Basically I have click handlers for when the "Reply" or "Cancel" links are clicked, and I handle form validation with Javascript (using Parsley, in this case).
For server-side validation you can use diggy's solution.