I've been aliasing "l" and "ls" to "exa" for years now. Aliases in your shell won't cause any problems, because any scripts you run won't follow the aliases and will just use ls normally.
Actually replacing the binary? That would cause so many problems!
Are you really sure you want to replace ls with exa? I can think of a dozen reasons it could cause trouble.