Is it a good practice to use Principal not actor types in shared functions?

Is it a good practice to always use Principal not actor types for passing arguments and return values of shared functions, for the case if these may be used from agent-js that currently has limited support for actors? (it seems that it can pass neither arguments nor return values of actor types - correct me if I’m wrong)

Both GPT-3.5-turbo and Bard recommend to use Principal in such cases. Here is the prompt:

In DFINITY Internet Computer: Is it a good practice to always use Principal not actor types for passing arguments and return values of shared functions, for the case if these may be used from agent-js that currently has limited support for actors? (it seems that it can pass neither arguments nor return values of actor types - correct me if I’m wrong)