loops with C18 Compiler on mplabide for 18f4550
It sounds like the function "blink-Rx-two-led-alternatively-forever();" actually stays in the loop forever.  

We don't have the code for this subroutine, but I'd assume that the code hits the first function (whichever one you place first, as you described), goes into it, and blinks the LED forever, just like it says in the prototype name.

If you want to blink both LED's, start by initializing your ports B and D to outputs (the TRISx register).  Then, enter the while(1) loop [1], exclusive OR each bit, and add a delay to set the timing or it will blink so fast it will just look dim.  A delay can be as simple as setting up a for loop with a big number and decrementing until you hit 0.

EDIT:
The exclusive OR operation toggles a bit (a 1 becomes a 0 and a 0 becomes a 1), so, e.g., for variable uint8_t my_light, to toggle bit 0, you would write:

my_light ^= 0b00000001;

or you could write:
my_light = my_light ^ 0b00000001;

The "^" is the exclusive OR operation.

Also, if you are going to use C, pick up a copy of Kernighan and Ritchie; I couldn't do without it.

[1] a for(;;) to create an infinite loop is often preferred to using while(1)