There is no way round this drop fee. (EU law requires open and fair competition, but it has nothing specific to say about rental car mileage charges or drop fees)
A car hired in a mainland european country can be driven to another EU country - but will always have a massive drop fee if you do not return it to the original country. The car has to be returned, or re-registered. Both involve big hassle and cost for the rental company.
Also, driving from Rome to Barcelona is not much fun. 1400km. As a comparison, you can get an easyjet flight from Milan to Barcelona for about EUR25 (handbaggage price - you pay extra for baggage).