My own experiments have shown that the GPIOs will take a bit of abuse. I've drawn 35mA from a single pin and "got away" with it for example.
I also did this:
way back. Those LEDs are all on and all drawing about 10mA each - so that's 170mA going through the SoC - when the maximum recommended is 50mA.... (And yes, that Pi is still going to this very day :)
However I'd never abuse it like that for a production design.
Most 5v TTL is happy to be driven at 3.3v - it's the other way round that's a bigger issue - ie. 5v into the Pi - so use a divider or something like a buffer driven at 3.3v that's tolerant to 5v inputs - e.g. 74HCT244.
I do think the LM358 is a bit over the top for a simple 3.3 -> 5v conversion though, but maybe I'm just a fan of the uln2003/2803 too...
-Gordon