Here is how you do it properly:
The IK limits should be used only when needed. The limits on last 3 (Proximal, Middle and Distal) bones are fine.
Now change the IK constraint chain length to 3, this will remove the first bone from IK chain.
Instead rotate the bone with constraint, here is a LockedTrack that will also constrain the Y axis so the fingers end can move up and down with the base in correct orientation. This will also solve any flipping issue.
If you need to position the finger in space, do it with parenting it to a bone and then transforming that bone. Everything will keep working as expected.