Can a customer portal user have a same username as CRM username? Can anyone explain me reason behind this?
Yes, a customer portal user can have the same username as a regular CRM user. Portal usernames have to be unique within your organisation, across all of your portals. Thus once a customer portal user has taken the username 'firstname.lastname@example.org', no other portal user within your org, on any portal, can use the same name. However, that username can be used for a portal user on another organisation.
As to the reason, I haven't seen anything documented about this. My view is that as a user could potentially be a customer of a number of companies, it follows that they could have customer portal logins across a number of Salesforce organizations, and it makes sense that they can retain the same username across all of these organizations.
You cannot duplicate usernames for instances hosted on production pods, like communities. The username namespace for production & sandbox are different, so you could have the same username on NA1 and CS1, but you can't have the same username on NA1, NA2, etc.
So this means you cannot duplicate usernames across communities.