¿Llamando a una función en el servicio AngularJS desde el mismo servicio?

Tengo un servicio AngularJS definido de la siguiente manera

angular.module('myService').service('myService', function() {
  this.publicFunction(param) {
    ...
  };

  this.anotherPublicFunction(param) {
    // how to call publicFunction(param)?
    ...
  };
});    

y me gustaría llamar a la primera función desde fuera del servicio (que funciona bien almyService.publicFunction(xxx)) y de otra función en el mismo servicio, es decir,anotherPublicFunction. Ninguno dethis.publicFunction(param) omyService.publicFunction(param) no funcionará desde dentro de la segunda función, y puedo entenderlo.

EDITAR:
En realidad, todo el problema fue causado por algo que no se puede reproducir solo con mi ejemplo. Pasé la segunda función como un parámetro de devolución de llamada a otra función en un controlador separado, y cuando se llama, la referencia athis no funciona

P.ej.

anotherService.someCall('a', 123, myService.anotherPublicFunction);

falla dentroanotherPublicFunction porquethis no se puede resolver

He escrito un Plunker para mostrar el problema: http://plnkr.co/edit/rrRs9xnZTNInDVdapiqF?p=info

(Aún dejaré la pregunta aquí en caso de que ayude a alguien más).

Sé que podría solucionar el problema usando una referencia al servicio o la primera función como esta

var ms = this;
this.anotherPublicFunction(param) {
  ms.publicFunction(param);
  ...
};

o esto

var pf = this.publicFunction;
this.anotherPublicFunction(param) {
  pf(param);
  ...
};

Pero ambos parecen hacks sucios.

¿Hay una buena manera de llamar a la primera función de la segunda en este caso? ¿O estoy haciendo algo totalmente incorrecto en primer lugar para tener un servicio como este?

Encontré estas preguntas con buenas respuestas:

Angularjs comparte funciones dentro del servicio.AngularJs llama a una función de servicio interno desde uno mismo

pero difieren de mi problema ya que uno de ellos tiene una función interna separada que se llamará, y el otro usaba una fábrica en lugar de un servicio.

EDITAR:

Después de publicar esto, inmediatamente me di cuenta de que también podía hacer esto:

var actualWork = function(param) {
  ...
}

this.publicFunction(param) {
  actualWork(param);
};

this.anotherPublicFunction(param) {
  actualWork(param);
  ...
};

lo que no parece tan malo como las otras opciones hasta ahora ... ¿Hay mejores enfoques?

Respuestas a la pregunta(11)

Su respuesta a la pregunta