Looking at your question, it might look as if you are asking "Why we call"... It seems on a second read you are asking about "ACALL" as opposed to "CALL".
There are three call commands, each depends where the subroutine resides in program code.
ACALL is within 2048 program instructions away.. LCALL is when your subroutine is more than 2048 instructions away.
ACALL is Absolute CALL this uses absolute addressing. (11 bits +/- 1024 instructions)
LCALL is Long CALL this is for extended address is used. (16 bits +/- 32767 instructions)
If it doesn't matter to you how your program is optimized then you can just call CALL This is the generic call and I think it defaults to LCALL.
The same applies to JMP... AJMP, SJMP and LJMP.. However!! SJMP is only 8 its ( 255 instructions +/- 128) and is used for optimizing still further...