Paint should only be used for interim markings, never for permenant. Cost doesn't even play a role in it, paint just doesn't last.
Epoxy is used for long-term markings. Years ago you also used to see a specification for polyester pavement markings for long lines only (special pavement markings were still Epoxy) - but many Agencies have switched to Epoxy for everything.
Agreed: stripe should be used in conjunction with glass beads, clean pavement, and pavement temperature should be in spec at the time of application. Use products found on your DOT's Approved List.
If you have snow and ice conditions in your area, only getting 2-3 years out of epoxy markings isn't necessarily out of the norm. Plows, salt and sand destroy markings, regardless of the type of material used.