I am using a link on my site name "sign_up". When you click on sign it, it checks what language you have selected and what curreny, and permanently redirects you to the correct page using a 301 redirect.
Is this bad for SEO? Keep in mind, this is the way it will remain. I'm not eventually going to get rid of it?
The HTTP 301 status code makes no sense at all in this case because you are performing a redirection based on client settings and preferences. How would the crawler know which is the right environment?
Take the following screnario
client A connects to /signup with preferences X
=> 301 to /en/signup
client B connects to /signup with preferences Y
=> 301 to /it/signup
client C connects to /signup with preferences X
=> 301 to /en/signup
Which would be the winner? Nobody. A 301 makes sense only when an URI uniquely and permanently redirects to an other location.
Additionally, trying such kind of optimization for a signup page IMHO seems to be a little insane. Many SEOs are used to exclude the signup page and similar pages via nofollow attribute.