Offline maps are always recommended, since we generate and improve them continuously.
Regarding routing please see also the offline routing guide.
The best combination is Kurviger with fallback to BRouter or GraphHopper when there is no internet.
More details about data usage exist also in documentation.