2) - ну Вы же в любом случае различаете сейчас в каком указателе нужно передавать строку, так что ничего по сути не изменится 1) - проблема ИМХО решаемая только шаблонными функциями С++, что тоже не панацея в случае нехватки памяти.
Это моё личное предвзятое мнение. Любое совпадение с реальностью является случайным и непреднамеренным.