Вы правы. Если все будет называться OBJECT :: sub () или $ obj-> sub (), все будет в порядке.
Для наследования вы захотите использовать @ISA, и для этого вам не нужен экспортер.
Кроме того, вторая цитата, которую вы дали, касается экспортируемых данных, поступающих в модуль.
Если вы используете: use libname ();
против библиотеки, которая экспортирует с помощью Exporter, вы гарантированно ничего не экспортируете. Вот как это можно использовать для предотвращения загрязнения пространства имен. Если вы явно экспортируете по имени функции, это единственные функции, которые вы получаете.