provo a darti le mie opinioni

1) Hibernate è pesante? Può essere installato anche sotto Tomcat e non necessariamente all'interno della mia applicazione (che passerebbe da circa 2 Mb ad oltre 30 per la sola presenza di Hibernate, sarebbe assurdo!)?
Devi "buildare" la tua applicazione con Hibernate. Non mi sono occupato in maniera spinta di configurazione, ma direi che devi portartelo dentro.
2) Hibernate è efficiente? Ovvero, per il suo funzionamento richiede molte più risorse di calcolo di quante non ne richiederebbe un'applicazione senza Hibernate?
Ovviamente introduce un'overhead. Ma per applicativi transazionali è molto efficiente.
Dal punto di vista delle risorse di calcolo non credo che richieda particolari carrozzamenti.
Te lo sconsiglio invece per applicativi batch. Non ho riprovato le ultime versioni, ma le prime gestivano molto bene il contesto transazionale, ma male quello batch

una nota: mettere Hibernate su un DB già esistente potrebbe non essere una passeggiata. Questo perchè Hibernate consiglia che le tabelle siano fatte con alcuni accorgimenti (primo fra tutti una chiave primaria non composta). Se il DB non era stato pensato per Hibernate, potresti trovarti delle sorprese, a discapito di quanto decanta la documentazione Hibernate...