Visualizing variability from graph 
It is written in the book Applied Logistic Regression, Second Edition. By David W. Hosmer and Stanley Lemeshow , p.2 that a problem with the above graph is that the variability in CHD at all ages is large.
But I cannot visualize the variability in CHD.
Did they mean the distance between the two straight line by variability? But 0 and 1 for CHD indicate absence and presence of CHD and these two levels are just nominally defined. If  I want to represent it by 1 and 1.01, then the distance will not be so large.
From what angle should I visualize the variability in CHD?
 A: The point is presumably elementary, namely that cases with CHD occur at almost any age, but this seems banal even to non-medical people. But statistically, variability means much more than "variation exists"; it is something to be quantified. 
With no context and nothing else said, the main problem with the graph seems other than stated. It's that the reader has no way of telling whether each data point is one person or numerous people and no way of comparing frequencies, because people with the same age and status on CHD will inevitably be plotted at exactly at the same point. Overplotting is the main weakness of this graph. 
It's reasonable enough to record age to the nearest year but a more informative graph would show fractions with CHD at each age and absolute numbers too. Quite how best to do that depends on the numbers involved. With modest frequencies dot or stripplots showing points stacked by age might be feasible. With much larger frequencies, paired histograms would be a one possibility. 
Detail: Editing the OP's post reveals a caption that the graph represents 100 subjects. I've left my comments above as first written because I think them fair on what was visibly presented to everyone except those happening to edit the post. 
P.S. It's a strong convention to represent presence-absence, yes or no, etc. binary states with 0 and 1. A major reason for that is that means of 0s and 1s then represent proportion present (yes, etc.). The OP suggests that there might be coding such as 1 and 1.01 to which the answer is Yes, in principle, but there would be no reason for such coding stronger than the advantages of 0,1. In any case, graphs like this should always be drawn with a scale suitable to distinguish different states. So use of binary coding is reasonable and does not itself make the graph problematic; indeed the next step is to show fractions (proportions, probabilities) which can be done consistently with that scale. 
A: By "variability," the authors mean any reasonable measure of the dispersion of CHD conditional on age. 
Study this by slicing the data into narrow age groups (as shown by different colors in the right hand scatterplot), computing the dispersion of the CHD values within each age group, and plotting those dispersions against age (shown in the left hand dot chart).

Because CHD is binary and encoded with zeros and ones, it is a Bernoulli variable.  The CHD values within any age group $i$ are completely summarized by their count $n_i$ and the count of (say) the ones, $k_i$, which thereby has a Binomial distribution with (unknown) probability $p_i = \Pr(1)$.  Although there are many ways to estimate $p_i$, we needn't be fussy; the proportion $\hat p_i = k_i / n_i$ will do nicely.  An appropriate measure of the dispersion of CHD then is the estimated standard deviation $\sqrt{\hat p_i(1-\hat p_i)}$. It can vary from $0$ (when $\hat p_i$ is close to $0$ or $1$) up to $1/2$ (attained when $\hat p_i = 1/2$).  The full range of possible standard deviations is shown on the horizontal axis in the left plot.  Clearly all of them are in the high (rightmost) range, explaining and justifying  the assessment that "the variability at all ages is large."
Hosmer and Lemeshow go on to analyze these data into eight age groups rather than the eleven shown here.  The conclusion of consistently large variability begins to break down with more age groups: we can see in the right hand plot that all CHD values are constant at the very lowest and very highest ages, exhibiting no variability at all.  That is to be expected: when we use many groups, some groups will have few values, resulting in high uncertainty concerning the true dispersion within each group.  The authors, by limiting the number of groups, maintain fairly high counts $n_i$ within each group, thereby achieving a robust picture of the dispersion of CHD conditional on age.
A more sophisticated, but slightly more opaque, method to estimate the conditional dispersion is to smooth CHD against Age using a local estimator of the mean.  This smooth can be converted to an estimator of the dispersion using the same formula as before:

I have highlighted (in red and by thickening the line) the "large" standard deviations--that is, those greater than the middle value of $1/4$.

These data are available in the file chdage.dat found at ftp://ftp.wiley.com/public/sci_tech_med/logistic/alr.zip.  The R code used to create these plots is reproduced below for those who would like to experiment with them.
#
# Applied Logistic Regression, Table 1.1
#
folder <- "F:/Research/ALR/logistic/" # Location of the data file on your system
x <- read.table(paste0(folder, "chdage.dat"), col.names=c("Id", "Age", "CHD"))
#
# Specify age grouping.
#
n.groups <- 11
k <- 5           # Should be relatively prime to n.groups and near n.groups/2
colors <- rainbow(n.groups)
colors <- colors[(1:n.groups * k) %% n.groups + 1]
#
# Study dispersion ("variability") of CHD by age.
#
breaks <- quantile(x$Age, (0:n.groups)/n.groups) #$
x$AgeGroup <- cut(x$Age, breaks)
s <- aggregate(x$CHD, by=list(x$AgeGroup), function(y) sqrt(mean(y)*(1-mean(y))))
dotchart(s$x, s$Group.1, xlim=c(0, 0.525), pch=16, col=colors, cex=min(1, 10/n.groups),
         xlab="Standard Deviation", 
         main="Variation in CHD by Age Group", cex.main=0.8)
#
# Plot the raw data.
#
names(colors) <- levels(x$AgeGroup)
plot(jitter(x$Age), x$CHD, yaxp=c(0, 1, 1), ylim=c(0,1)+c(-1,1)*0.05,
     cex=1.25, col=colors[x$AgeGroup], 
     xlab="Age (years, jittered)", ylab="CHD",
     main="CHD vs. Age", cex.main=0.8)
abline(v = breaks, lty=1, col="Gray")
#
# Plot the smoothed dispersion.
#
CHD.smooth <- lowess(x$Age, x$CHD)
CHD.smooth$y <- pmin(1, pmax(0, CHD.smooth$y))
CHD.sd <- sqrt(CHD.smooth$y * (1-CHD.smooth$y))
large <- CHD.sd > 1/4
plot(CHD.smooth$x, CHD.sd, type="l", lwd=2, col="Gray",
     xlab="Age", ylab="Standard Deviation", 
     main="Smoothed Dispersion of CHD",
     cex.main=0.75, cex.lab=0.75, cex.axis=0.75) #$
lines(CHD.smooth$x[large], CHD.sd[large], lwd=3, col="Red")

A: I believe the point they are trying to make is that, for any given age bin (say 40-45) there are about equal numbers of CHD=0 and CHD=1. This indicates that CHD is not very predictable from age, so it has a high variability. If you wanted to quantify this, you could use something like binary entropy - the closer that p(CHD=0) is to 1/2, the more entropy/variability there is for that age bin.
