Dependent date_popup maxDate
Solved!

Instead of trying to change the maxDate using Drupal.settings.datePopup[id].settings, pass it as options to datepicker using the jQuery Datepicker syntax $( ".selector" ).datepicker( "option", { name: value } );

Here is the solved JavaScript code:

(function($){
Drupal.behaviors.meh_profile = {
attach: function (context, settings) {
    $('#edit-profile-main-field-profile-date-of-birth-und-0-value-datepicker-popup-0').attr('disabled', 'disabled');
    $('input:radio[name="profile_main[field_profile_gender][und]"]', context).change(function(){
        var genderVal = $('input:radio[name="profile_main[field_profile_gender][und]"]:checked').val();
        if (genderVal == Drupal.settings.gender_options.gender_female) {
            $("#edit-profile-main-field-profile-date-of-birth-und-0-value-datepicker-popup-0").val('').removeAttr('disabled').removeClass('hasDatepicker').datepicker({
                changeMonth: true,
                changeYear: true,
                yearRange: '-75:-18',
                maxDate: '-18y'
            });
        } // if female
        if (genderVal == Drupal.settings.gender_options.gender_male) {
            $("#edit-profile-main-field-profile-date-of-birth-und-0-value-datepicker-popup-0").val('').removeAttr('disabled').removeClass('hasDatepicker').datepicker({
                changeMonth: true,
                changeYear: true,
                yearRange: '-75:-21',
                maxDate: '-21y'
            });
        } // if male
    }); // gender change handler
}
};
})(jQuery);