I am not a typing expert but I found it unusual to have some keys been repeated on keyboard. What's the logic behind this?
I believe it's merely for the ergonomic benefit. Especially when touch typing.
Imagine if you want to type "A" and you would have to use the right shift key. Try it for yourself. I would need my both hands, because I can't reach it.
You can find more information on wiki: http://en.wikipedia.org/wiki/Touch_typing
And also in a related post over at SuperUser: https://superuser.com/questions/304295/why-are-there-two-sets-of-the-ctrl-alt-and-shift-modifier-keys-on-the-keyboard
Keep in mind that some of the "duplicate" keys (may) have other functions.
As a matter of fact, there aren't two
Enter keys on a keyboard - one of them is 'Enter' and the other one 'Return'.
With some old machines (and even sometimes nowadays in applications) these keys had a different function. From Wikipedia:
For example, while using the type tool in Adobe Photoshop, the return key produces a new line while the enter key ends editing mode.
On IBM's 3270 and 5250 line of terminals, the Enter key was located to the right of the space bar and was used to send the contents of the terminal's buffer to the host computer. The Return key was located in a more standard location and was used to generate a new line.
Apple also took advantage of this situation to create a highly editable command line environment called a "Worksheet" in the Macintosh Programmer's Workshop, where return was used strictly as a formatting key while enter was used to execute a shell command or series of commands in direct mode.
In technical terms, the Macintosh keyboard maps the return key to a carriage return, while the enter key maps to a newline.
As someone who learnt to touch type only some of the duplicate keys are useful to a touch typist (such as Shift which existed on typewriter keyboards).
The history of keyboard design is really the history of the IBM Keyboard - which started out as a mainframe keyboard and had to cope with legacy functions from other input devices.-
The duplicate keys can usually be re-mapped to other useful shortcuts (like copy and paste instead of having to hit multiple keys to perform these shortcuts) or program specific controls to make certain functions easier (e.g. in gaming, you may map these buttons so they perform in-game commands). It's helpful to have a few extra buttons available on the keyboard for this so that you're not overwriting keys that may be necessary, but they have default values so that they're still useful when not otherwise set to custom functions.