Difference between make local object and make proxy
Make Proxy adds a new object and sets it as the parent of the linked data. This allows you to transform the empty while still retaining the link to the original blendfile.

Make Local Object copies the object data from the original blendfile to the new file, severing the link.

It is probably better to use Make Proxy because:


It keeps the link to the original file. If you change the original file, the linked object will be changed as well.
It keeps your filesize small. Instead of having to copy the mesh data (all the verts, etc.), the only data that's stored is a sign saying "look over there."
Otherwise, you're basically just Appending (ShiftF1).




A slight correction to your edit: you can edit the object. You cannot, however, edit the mesh. Here's why:

When you first Link an object, you are linking the Object datablock (cube icon). Linking the object also causes it to bring along the Mesh datablock (triangle icon), because it relies on the Mesh datablock. If you have any materials, textures, etc., those will be *Link*ed as well.

When you Make Proxy, the Object datablock is cloned, but the Mesh datablock is not. This is why you cannot edit the mesh: the Mesh datablock is still linked.

You can edit anything that is a property of the object datablock, such as the position, rotation, scale, material slots (but not any linked materials themselves), modifiers, constraints, particles, etc. You cannot modify anything that is part of the mesh datablock. Examples of things you cannot edit include:


vertex groups (and, thus, Weight Paint Mode is disabled)
UV maps
shape keys
skin radii


These basic concepts also apply with other linked data types as well.