I think that assuming that $S$ is compact and that $f$ achieves its supremum over $S$ you are right - see below.
If $f:\mathbb{R}^n\rightarrow\mathbb{R}$ is quasiconvex, then for any $0\leq\theta\leq 1$
$$f(\theta x+(1-\theta)y)\leq\max\{f(x),f(y)\}.$$
Proof: To get a contradiction assume there exists an $y,z$ and $0\leq\theta\leq 1$ such that
$$f(\theta y+(1-\theta)z)>\max(f(y),f(z)).$$
Consider the sub-level set $A:=\{x:f(x)\leq\max(f(y),f(z))\}$. Then $y,z\in A$, but $\theta y+(1-\theta)z\not\in A$ which contradictions quasiconvexity of $f$.
One can iterate the above to get that:
If $f:\mathbb{R}^n\rightarrow\mathbb{R}$ is quasiconvex, then for any $x_1,\dots,x_m\in \mathbb{R}^n$ and $\theta_1\geq 0,\dots,\theta_m\geq0$ such that
$$\sum_{i=1}^m\theta_i=1,$$
then
$$f\left(\sum_{i=1}^m\theta_i x_i\right)\leq \max_{i=1,\dots,m}\{f(x_i)\}.\quad\quad(*)$$
We can use the above to show that:
If $f:\mathbb{R}^n\rightarrow\mathbb{R}$ is quasi-convex, $S$ is a compact and convex subset of $\mathbb{R}^n$, and there exists an $x^*\in S$ such that $f(x^*)\geq f(x)$, then $S$ has an extreme point $y$ such that $f(y)= f(x^*) $.
Proof: By the Krein-Milman Theorem $S$ has at least a single extreme point. In addition, if $K$ denotes the set of all extreme points of $S$, then $S$ is equal to the convex hull of $K$.
Since $x^*\in S$, and using the definition of convex hull, there exists $x_1,\dots,x_m\in K$ and $\theta_1\geq0,\dots,\theta_m\geq0$ with $\sum_{i=1}^m\theta_i=1$, such that $x^*=\sum_{i=1}^m\theta_i x_i$. Applying $(*)$ completes the proof.
Note that if $f$ is continuous, since $S$ is compact, then the existence of $x^*$ in the premise above is guaranteed.
What a great question! The term "log-log convexity" is indeed used to refer to the property you have described. It pops up in literature on polynomial optimization, and also in a bit of a disguised manner in geometric programming.
Let's look at the latter case, because to be honest that's what I'm personally familiar with. Consider an expression of the form
$$\sum_{k=1}^K c_k x_1^{a_{1k}} x_2^{a_{2k}} \cdot x_n^{a_{nk}}$$
The variables here are $x_i\geq 0$, $i=1,2,\dots, n$, and the fixed parameters are positive $c_k>0$, $k=1,2,\dots K$ and exponents $a_{ij}$, $1\leq i\leq n$, $1\leq j\leq K$. This expression is what is known as a posynomial. In general, it is not convex, nor is it log-convex.
(Side note: if all of the exponents are nonnegative, and $\sum_i a_{ik}\leq 1$ for each $k=1,2,\dots,K$, then this expression is concave. But we want to consider the case where the exponents are not constrained in this way.)
Now suppose I define $x_j = e^{y_j}$, and substitute. This converts the expression to
$$\sum_{k=1}^K c_k e^{a_{1k}y_1} e^{a_{2k}y_2} \cdot e^{a_{nk}y_n}
= \sum_{k=1}^K c_k e^{\sum_{i=1}^n a_{ik}y_i} =
\sum_{k=1}^K \mathop{\textrm{exp}}\left(\textstyle\sum_{i=1}^n a_{ik}y_i+\log c_k\right)$$
Notice how we have depended upon the positivity of the coefficients $c_k$ so we could move then into the exponents; and notice how the exponents are affine functions of $y$.
Now, if I take the logarithm, I get
$$\log \sum_{k=1}^K \mathop{\textrm{exp}}\left(\textstyle\sum_{i=1}^n a_{ik}y_i+\log c_k\right) = f(Ay+\bar{c})$$
where $A\in\mathbb{R}^{n\times k}$ is a collection of the $a_{ij}$ values, $\bar{c}\in\mathbb{R}^K$ is a collection of the $\log c_k$ values, and $f$ is a convex log-sum-exp function
$$f(z) \triangleq \log \sum_{i=1}^K \mathop{\textrm{exp}}(z_k).$$
So in other words, by doing a logarithmic transformation of the variables, and taking the logarithm of the expression, we have arrived at a convex result. What this means is: a posynomial function is a log-log-convex function of its inputs.
(An astute reader will see that the expression was convex before we took that final logarithm. But the log-sum-exp function tends to have better numerical properties the sum-exp function. Also, when $K=1$, as often occurs in practice, the resulting function is linear, and it's useful to exploit that, of course!)
In true geometric programming, posynomials are the only log-log-convex functions considered. Even in generalized geometric programming, the models considered are converted to pure geometric form, so again, posynomials remain the basic nonlinear construct. But it would be entirely possible to consider an entire family of log-log-convex functions here.
One thing I will point out is that standard convexity and log-log-convexity don't mix very well. That is to say, you usually can't mix convex expressions of $x$ and log-convex expressions of $y=\log x$ in the same model, if you wish to preserve the theoretical and practical benefits of convex optimization. (I leave the cases where you can do so to the reader; hint: consider $y\leq \log x$.) That said, you can mix convex and log-convex functions of $y$ in the same model (e.g., sum-exp and log-sum-exp).
Best Answer
Your answer is straightforward up to the part where you have to show that $\{x \; : \; f_0(x)/(c^T x + d)\ \le \alpha \}$ is a convex set. You could use the definition of convexity for that (as gerw does), but that is quite involved. Instead, you could rewrite the set as $\{x \; : \; f_0(x)\ \le \alpha (c^T x + d) \}$. Now it is immediate that this set is convex. To do the rewriting, you need $c^T x + d > 0$, as otherwise the inequality may flip.