--- Quote Start ---
Your question why not use unsigned always sounds sensible to me but it could matter of consistency to use signed adder for signed values. I am not sure if it saves much logic using unsigned adder always.
--- Quote End ---
The gate level logic and resource usage are exactly identical for an unsigned versus signed adder. (As long as no optional overflow output is synthesized).
I don't see an essential difference for overflow behaviour between unsigned and signed adder. The basic requirement to avoid overflow is that the result must fit the existing bits. This is the case e.g. for your (-1 + -4) example, to represent -5, you simply need 4 bits. Sign extension is required to increase the word size of signed numbers before the add operation.
The available overflow detection mechanism is clearly described in the lpm_add_sub user manual. For unsigned, the carry bit indicates an overflow, for signed, an overflow bit can be generated as the XOR of carry in and carry out of the MSB.