Loading two different AJAX requests on two different pages

I’m interested in finding out how to do this but also the reason
behind it.

I haven’t tested your code (the conditional stuff), but from what I could see:

The Reason

The AJAX action is the same for both the front page and category AJAX requests:

  1. myloadmore.js

    var data = {
        'action': 'loadmore', // <- same as below action
        'query': misha_loadmore_params.posts,
        'page' : misha_loadmore_params.current_page
    };
    
  2. catloadmore.js

    var data = {
        'action': 'loadmore', // <- same as above action
        'query': cat_loadmore_params.posts,
        'page' : cat_loadmore_params.current_page
    };
    

And in functions.php, there are two callbacks (cat_loadmore_ajax_handler and misha_loadmore_ajax_handler) hooked to the AJAX action named loadmore. These callbacks would both be called when an AJAX request was made where the action is loadmore, no matter the request came from the front page or a category archive.

But you call wp_die() (which is similar to calling die or exit) from within the callbacks, so once the cat_loadmore_ajax_handler() is called, the other callback will not going to run since the script execution has ended. So that’s why:

catloadmore.js – This one works on category.php AND front-page.php even though I’m not calling it on front-page.php.

The “How To” (fix the issue)

Use different actions:

  1. myloadmore.js

    var data = {
        'action': 'myloadmore',
        ...
    };
    
  2. catloadmore.js

    var data = {
        'action': 'catloadmore',
        ...
    };
    

And in functions.php:

  1. For the front page:

    // AJAX action: myloadmore
    add_action( 'wp_ajax_myloadmore', 'misha_loadmore_ajax_handler' );        // Authenticated users
    add_action( 'wp_ajax_nopriv_myloadmore', 'misha_loadmore_ajax_handler' ); // Non-authenticated users
    
  2. For category pages:

    // AJAX action: catloadmore
    add_action( 'wp_ajax_catloadmore', 'cat_loadmore_ajax_handler' );        // Authenticated users
    add_action( 'wp_ajax_nopriv_catloadmore', 'cat_loadmore_ajax_handler' ); // Non-authenticated users