The contents of -dev, -bin, etc. packages is entirely convention, the package manager doesn't actually care. If you were actually uploading to the Ubuntu (or Debian) archive, various tools (and people) might check if the conventions are being followed, but for local packages you don't have to follow them if you don't want to. That said, there is often good reason to follow them — reducing confusing if nothing else.
That said, the various package relationships headers (Depends, Breaks, etc.) all support versions; if you declare the relationships correctly, the package manager should stop you from installing an incompatible set. It doesn't even sound like you need versions; just that libel-dev needs to Depends: on libel2-bin and libel2-bin needs to Conflicts: libel1-bin (if they're not co-installable).
You may find the Debian Policy Manuals “Declaring relationships between packages” helpful.