A couple things, first you are not discussing air resistance correctly. The drag depends on the current velocity, which is a dynamical quantity, not just on the muzzle velocity. You need to use the current velocity at any step of the calculation.
Second, in broad terms, you can think of the problem you face as one of root finding. You have some function $d(\theta)$ that returns the distance travelled as function of theta, and you want to know what argument of $\theta$ will make it equal some special value: $d^*$. You can think of this as finding the root (the place where it crosses zero) of the function
$$ f(\theta) = d(\theta) - d^* $$
And there exist efficient algorithms for doing this without having to check every single value of $\theta$. For this problem in particular, I would recommend the secant method, which is an iterative procedure to give you improved guesses. In this case, it would give you a new guess based on your previous two guesses as:
$$ \theta_n = \frac{ \theta_{n-2} d(\theta_{n-1}) - \theta_{n-1} d(\theta_{n-2}) + d^* ( \theta_{n-1} - \theta_{n-2} ) }{ d(\theta_{n-1}) - d(\theta_{n-2}) } $$
Where $\theta_{n-1}$ is the previous guess at the angle, $\theta_{n-2}$ is the guess before that, and $d(\theta_{n-1})$ and $d(\theta_{n-2})$ were the calculated distances for those angles. You do this iteratively until you've converged, meaning your guess doesn't change much
$$ | \theta_n - \theta_{n-1} | < \epsilon $$
with $\epsilon$ some small number you choose that governs your precision, $10^{-5}$ say.
Now you just have to write a routine $d(\theta)$ that calculates the distance a bullet travels for a given angle and you can find the right angle for any distance in short order.
To help with that, I suggest you use leapfrog integration, or if you prefer, see this se/gamedev answer geared towards programmers.
Just based on the quadratic drag of air, yes, the fired bullet would take longer to hit the ground.
Just consider the vertical force caused by the air friction:
$F_y = - F_{\rm drag} \sin \theta = - C (v_x^2 + v_y^2) \frac{v_y}{\sqrt{v_x^2 + v_y^2}} = - C v_y \sqrt{v_x^2 + v_y^2}$
Where $\theta$ is the angle above the horizon for the bullet's velocity, and $C$ is some kind of drag coefficient. Note that when the bullet is moving down $\theta$ is negative, as is $v_y$, so the overall vertical force is positive and keeps the bullet off the ground for slightly longer.
In the dropped case, $v_x = 0$, so we get $F_y = -C v_y^2$.
In the fired case, we can neglect $v_y$ in the radical (assuming it's much smaller than $v_x$) and we get $F_y \approx -C v_y |v_x|$.
In other words, the upward force on the fired bullet is stronger, by a factor of $v_x / v_y$.
So freshman-level physics is wrong, at least according to sophomore-level physics.
Bonus Case:
If you're assuming a flat surface on earth, it's worth considering that many "flat" things (like the ocean) actually curve down and drop off below the horizon. In case you want to account for this curvature, it may be worth going to the bullet's reference frame with $\hat{y}$ always defined to point away from the center of the earth. Note that this puts you in a rotating reference frame, and then look at the centrifugal "force":
$F_y = m a = m R \omega^2 = m R \left(\frac{v_x}{R}\right)^2 = m \frac{v_x^2}{R} $
Where $R$ is the radius of the earth and $m$ is the mass of the bullet. So again, an upward force, this time proportional to $v_x$ squared. Of course this is the same as pointing out that the earth curves away from a straight line, but it's another fun application of not-quite-freshman physics.
Now you can add in much more complicated aerodynamics, but there the question sort of looses its undergrad physics charm there and becomes an aerospace engineering question!
Best Answer
Assuming you are ignoring air friction, then if $v_0$ is the muzzle speed of the bullet and $\theta$ is the angle from the horizontal, then the horizontal speed will be $v_h = v_0 cos(\theta)$ and the vertical speed will be $v_v = v_0 sin(\theta)$. So the bullet will reach a horizontal distance of $d = 2000 yards$ at a time $t = d/v_h$, so the time of flight will depend on the angle but the time for $+30^o$ and $-30^o$ will be equal and longer than the $0^o$ case. The distance that the bullet will fall relative to the horizontal axis, $\Delta y$, will be given by $\Delta y = v_v t -\frac{1}{2} g t^2$. So it should be clear that all three $\Delta y$'s will be different since $v_v$ has different signs for $+30^o$ and $-30^o$.
However, if you are measuring the drop relative to the aim point, which is at $v_v t$ then the drop will be $\Delta y = -\frac{1}{2} g t^2$. Now the $\Delta y$ for the $+30^o$ and $-30^o$ will be equal and different than the $0^o$ case.